~nova-coresec/ubuntu/maverick/libvirt/nova-ppa

« back to all changes in this revision

Viewing changes to ChangeLog

  • Committer: Bazaar Package Importer
  • Author(s): Guido Günther
  • Date: 2010-05-09 14:25:00 UTC
  • mto: (1.2.5 upstream) (3.4.15 squeeze)
  • mto: This revision was merged to the branch mainline in revision 92.
  • Revision ID: james.westby@ubuntu.com-20100509142500-1aracjxxmac2zx33
Import upstream version 0.8.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
2010-04-30  Cole Robinson  <crobinso@redhat.com>
 
2
 
 
3
        domain: Fix PCI address decimal parsing regression
 
4
        <hostdev> address parsing previously attempted to detect the number
 
5
        base: currently it is hardcoded to base 16, which can break PCI
 
6
        assignment via virt-manager. Revert to the previous behavior.
 
7
 
 
8
        * src/conf/domain_conf.c: virDomainDevicePCIAddressParseXML, switch to
 
9
          virStrToLong_ui(bus, NULL, 0, ...) to autodetect base
 
10
 
 
11
2010-04-30  Daniel P. Berrange  <berrange@redhat.com>
 
12
 
 
13
        Add support for another explicit IO error event
 
14
        This introduces a new event type
 
15
 
 
16
           VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON
 
17
 
 
18
        This event is the same as the previous VIR_DOMAIN_ID_IO_ERROR
 
19
        event, but also includes a string describing the cause of
 
20
        the event.
 
21
 
 
22
        Thus there is a new callback definition for this event type
 
23
 
 
24
        typedef void (*virConnectDomainEventIOErrorReasonCallback)(virConnectPtr conn,
 
25
                                                                   virDomainPtr dom,
 
26
                                                                   const char *srcPath,
 
27
                                                                   const char *devAlias,
 
28
                                                                   int action,
 
29
                                                                   const char *reason,
 
30
                                                                   void *opaque);
 
31
 
 
32
        This is currently wired up to the QEMU block IO error events
 
33
 
 
34
        * daemon/remote.c: Dispatch IO error events to client
 
35
        * examples/domain-events/events-c/event-test.c: Watch for
 
36
          IO error events
 
37
        * include/libvirt/libvirt.h.in: Define new IO error event ID
 
38
          and callback signature
 
39
        * src/conf/domain_event.c, src/conf/domain_event.h,
 
40
          src/libvirt_private.syms: Extend API to handle IO error events
 
41
        * src/qemu/qemu_driver.c: Connect to the QEMU monitor event
 
42
          for block IO errors and emit a libvirt IO error event
 
43
        * src/remote/remote_driver.c: Receive and dispatch IO error
 
44
          events to application
 
45
        * src/remote/remote_protocol.x: Wire protocol definition for
 
46
          IO error events
 
47
        * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
 
48
          src/qemu/qemu_monitor_json.c: Watch for BLOCK_IO_ERROR event
 
49
          from QEMU monitor
 
50
 
 
51
2010-04-30  Jiri Denemark  <jdenemar@redhat.com>
 
52
 
 
53
        Report all errors in SELinuxRestoreSecurityFileLabel
 
54
 
 
55
2010-04-30  Stefan Berger  <stefanb@us.ibm.com>
 
56
 
 
57
        Prevent updates while IP address learn thread is running
 
58
        Prevent updating and tearing down of filter while the IP
 
59
        address learning thread is running and has its own filtering
 
60
        rules applied.
 
61
 
 
62
        Syncronize the teardown of rules with the thread
 
63
        Introduce a function to notify the IP address learning
 
64
        thread to terminate and thus release the lock on the interface.
 
65
        Notify the thread before grabbing the lock on the interface
 
66
        and tearing down the rules. This prevents a 'virsh destroy' to
 
67
        tear down the rules that the IP address learning thread has
 
68
        applied.
 
69
 
 
70
        Clean all tables before applying 'basic' rules
 
71
        The functions invoked by the IP address learning thread
 
72
        that apply some basic filtering rules did not clean up
 
73
        any previous filtering rules that may still be there
 
74
        (due to a libvirt restart for example). With the
 
75
        patch below all the rules are cleaned up first.
 
76
 
 
77
        Also, I am introducing a function to drop all traffic
 
78
        in case the IP address learning thread could not apply
 
79
        the rules.
 
80
 
 
81
2010-04-30  Daniel Veillard  <veillard@redhat.com>
 
82
 
 
83
        MAke virFileHasSuffix case insensitive
 
84
        * src/util/util.c: as it's used for checking things like .iso suffixes
 
85
 
 
86
2010-04-30  Stefan Berger  <stefanb@us.ibm.com>
 
87
 
 
88
        nwfilter: Also pick IP address from a DHCP ACK message
 
89
        The local DHCP server on virtbr0 sends DHCP ACK messages when a VM is
 
90
        started and requests an IP address while the initial DHCP lease on the
 
91
        VM's MAC address hasn't expired. So, also pick the IP address of the VM
 
92
        if that type of message is seen.
 
93
        Thanks to Gerhard Stenzel for providing a test case for this.
 
94
 
 
95
        Changes from V1 to V2:
 
96
        - cleanup: replacing DHCP option numbers through constants
 
97
 
 
98
2010-04-30  Dustin Kirkland  <kirkland@canonical.com>
 
99
 
 
100
        Fix virt-pki-validate's determination of CN
 
101
        Ubuntu's gntls package generates an Issuer line that looks like this:
 
102
                Issuer: C=US,ST=NY,L=Rochester,O=example.com,CN=example.com CA,EMAIL=hostmaster@example.com
 
103
 
 
104
        While Red Hat's looks like this
 
105
        Issuer: CN=Red Hat Emerging Technologies
 
106
 
 
107
        Note the leading whitespace, and the additional fields in the former.
 
108
 
 
109
        This patch updates the regular expression to:
 
110
         * trim leading characters before "Issuer:"
 
111
         * trim anything between Issuer: and CN=
 
112
         * trim anything after the next ,
 
113
 
 
114
        I've tested this against the certool output of both RH and Ubuntu
 
115
        generated certs.
 
116
 
 
117
2010-04-29  Jim Meyering  <meyering@redhat.com>
 
118
 
 
119
        qemudDomainSaveFlag: remove dead store
 
120
        * src/qemu/qemu_driver.c (qemudDomainSaveFlag): Remove dead store to "rc".
 
121
 
 
122
2010-04-29  Daniel P. Berrange  <berrange@redhat.com>
 
123
 
 
124
        Fix detection of disk in IO events
 
125
        When using -device syntax, the IO event will have a different
 
126
        prefix, 'drive-' that needs to be skipped over before matching
 
127
        against the libvirt disk alias
 
128
 
 
129
        * src/qemu/qemu_driver.c: Skip QEMU_DRIVE_HOST_PREFIX in IO event
 
130
 
 
131
        Implement python binding for virDomainGetBlockInfo
 
132
        This binds the virDomainGetBlockInfo API to python's blockInfo
 
133
        method on the domain object
 
134
 
 
135
        >>> c = libvirt.openReadOnly('qemu:///session')
 
136
        >>> d = c.lookupByName('demo')
 
137
        >>> f = d.blockInfo("/dev/loop0", 0)
 
138
        >>> print f
 
139
        [1048576000L, 104857600L, 104857600L]
 
140
 
 
141
        * python/libvirt-override-api.xml: Define override signature
 
142
        * python/generator.py: Skip C impl generator for virDomainGetBlockInfo
 
143
        * python/libvirt-override.c: Manual impl of virDomainGetBlockInfo
 
144
 
 
145
        Add new domblkinfo command to virsh
 
146
          virsh # domblkinfo demoguest /dev/hda2
 
147
          Capacity:       1048576000
 
148
          Allocation:     104857600
 
149
          Physical:       104857600
 
150
 
 
151
        * tools/virsh.c: Implement domblkinfo command mapping to the
 
152
          new virDomainGetBlockInfo API
 
153
 
 
154
        Implement virDomainGetBlockInfo in QEMU driver
 
155
        * src/qemu/qemu_driver.c: Implementation of virDomainGetBlockInfo
 
156
        * src/util/storage_file.h: Add DEV_BSIZE
 
157
        * src/storage/storage_backend.c: Remove DEV_BSIZE
 
158
 
 
159
        Remote protocol impl for virDomainGetBlockInfo
 
160
        * daemon/remote.c: Server side dispatcher
 
161
        * daemon/remote_dispatch_args.h, daemon/remote_dispatch_prototypes.h,
 
162
          daemon/remote_dispatch_ret.h, daemon/remote_dispatch_table.h: Update
 
163
          with new API
 
164
        * src/remote/remote_driver.c: Client side dispatcher
 
165
        * src/remote/remote_protocol.c, src/remote/remote_protocol.h: Update
 
166
        * src/remote/remote_protocol.x: Define new wire protocol
 
167
 
 
168
        Internal driver API infrastructure for virDomainGetBlockInfo
 
169
        This defines the internal driver API and stubs out each driver
 
170
 
 
171
        * src/driver.h: Define virDrvDomainGetBlockInfo signature
 
172
        * src/libvirt.c, src/libvirt_public.syms: Glue public API to drivers
 
173
        * src/esx/esx_driver.c, src/lxc/lxc_driver.c, src/opennebula/one_driver.c,
 
174
          src/openvz/openvz_driver.c, src/phyp/phyp_driver.c,
 
175
          src/test/test_driver.c, src/uml/uml_driver.c, src/vbox/vbox_tmpl.c,
 
176
          src/xen/xen_driver.c, src/xenapi/xenapi_driver.c: Stub out driver
 
177
 
 
178
        Add virDomainGetBlockInfo API to query disk sizing
 
179
        Some applications need to be able to query a guest's disk info,
 
180
        even for paths not managed by the storage pool APIs. This adds
 
181
        a very simple API to get this information, modelled on the
 
182
        virStorageVolGetInfo API, but with an extra field 'physical'.
 
183
        Normally 'physical' and 'allocation' will be identical, but
 
184
        in the case of a qcow2-like file stored inside a block device
 
185
        'physical' will give the block device size, while 'allocation'
 
186
        will give the qcow2 image size
 
187
 
 
188
        * include/libvirt/libvirt.h.in: Define virDomainGetBlockInfo
 
189
 
 
190
2010-04-29  Chris Lalancette  <clalance@redhat.com>
 
191
 
 
192
        Fix a virsh edit memory leak
 
193
        When running virsh edit, we are unlinking and setting
 
194
        the tmp variable to NULL before going to the end of the
 
195
        function, meaning that we never free tmp.  Since the
 
196
        exit to the function will always unlink and free tmp,
 
197
        just remove this bit of code and let it get done at the
 
198
        end.
 
199
 
 
200
        Fix a qemuDomainPCIAddressSetFree memory leak
 
201
        qemuDomainPCIAddressSetFree was freeing up the hash
 
202
        table for the pci addresses, but not freeing up the addr
 
203
        structure.  Looking over the callers of this function, it
 
204
        seems like they expect it to also free up the structure,
 
205
        so do that here.
 
206
 
 
207
        Fix a memory leak in the node_device_udev code
 
208
        We were over-writing a pointer without freeing it in
 
209
        case of a disk device, leading to a memory leak.
 
210
 
 
211
        Fix build on Ubuntu.
 
212
        When building on Ubuntu with make -j3 (or more), it would always
 
213
        fail when trying to build virt-aa-helper.  I'm not an expert in
 
214
        automake by any means, but I think the entry for virt-aa-helper
 
215
        is mis-using LDADD; it shouldn't be putting direct paths to
 
216
        libvirt_conf.la and libvirt_util.la, but instead referencing those
 
217
        names.  With this patch in place, I'm able to successfully build
 
218
        on Ubuntu 9.04 with make -j3.
 
219
 
 
220
        Report better error if qemuSnapshotIsAllowed failed.
 
221
 
 
222
2010-04-29  Daniel P. Berrange  <berrange@redhat.com>
 
223
 
 
224
        Remove unused goto label from qemudDomainCreate
 
225
        The previous commit changes a goto from 'endjob' to 'cleanup',
 
226
        leaving the endjob label unused. Remove it to avoid compile
 
227
        warning.
 
228
 
 
229
        * src/qemu/qemu_driver.c: Remove 'endjob' label
 
230
 
 
231
2010-04-29  Stefan Berger  <stefanb@us.ibm.com>
 
232
 
 
233
        nwfilter: python bindings for nwfilter
 
234
        I have primarily followed the pattern of the 'secret' driver to provide
 
235
        support for the missing python bindings for the network filter API.
 
236
 
 
237
2010-04-29  Jim Meyering  <meyering@redhat.com>
 
238
 
 
239
        qemuDomainSnapshotCreateXML: avoid NULL dereferences
 
240
        * src/qemu/qemu_driver.c (qemuDomainSnapshotCreateXML): When setting
 
241
        "vm" to NULL, jump over vm-dereferencing code to "cleanup".
 
242
        (qemuDomainRevertToSnapshot): Likewise.
 
243
 
 
244
        qemudDomainCreate: correct a slightly misdirected goto
 
245
        * src/qemu/qemu_driver.c (qemudDomainCreate): Goto cleanup,
 
246
        not "endjob", since we know "vm" is already NULL.  No semantic change.
 
247
 
 
248
2010-04-28  Matthias Bolte  <matthias.bolte@googlemail.com>
 
249
 
 
250
        cygwin/mingw: Fix version script handling
 
251
        Let configure detect ld instead of hardcoding /usr/bin/ld, because
 
252
        MinGW may have ld in /bin.
 
253
 
 
254
        Only use a .def file to export symbols on MinGW. Cygwin's ld supports
 
255
        the normal .syms file used on Linux.
 
256
 
 
257
2010-04-28  Eric Blake  <eblake@redhat.com>
 
258
 
 
259
        build: fix autogen rule for VPATH build
 
260
        * cfg.mk (gnulib_srcdir): Override maint.mk default.
 
261
        (_update_required): Run in correct directory.
 
262
 
 
263
2010-04-28  Daniel Veillard  <veillard@redhat.com>
 
264
 
 
265
        Move dnsmasq host file to a separate directory
 
266
        use /var/lib/libvirt/dnsmasq since /var/lib/libvirt/network is
 
267
        unreadable by the dnsmasq binary
 
268
 
 
269
        * src/network/bridge_driver.c: update DNSMASQ_STATE_DIR
 
270
        * src/Makefile.am: create it on make install
 
271
        * libvirt.spec.in: take the new directory into account
 
272
 
 
273
2010-04-28  Stefan Berger  <stefanb@us.ibm.com>
 
274
 
 
275
        nwfilter: allow to mix filterrefs and rules in the schema
 
276
        So far the references to other filters needed to appear before filtering
 
277
        rules. With the below patch they can now appear in any order.
 
278
 
 
279
        Also I forgot to add a couple of 'rarp's.
 
280
 
 
281
2010-04-28  Daniel P. Berrange  <berrange@redhat.com>
 
282
 
 
283
        Fix handling of security driver restore failures in QEMU domain save
 
284
        In cases where the security driver failed to restore a label after a
 
285
        guest has saved, we mistakenly jumped to the error cleanup paths.
 
286
        This is not good, because the operation has in fact completed and
 
287
        cannot be rolled back completely. Label restore is non-critical, so
 
288
        just log the problem instead. Also add a missing restore call in
 
289
        the error cleanup path
 
290
 
 
291
        * src/qemu/qemu_driver.c: Fix handling of security driver
 
292
          restore failures in QEMU domain save
 
293
 
 
294
        Fix QEMU domain save to block devices with cgroups enabled
 
295
        When cgroups is enabled, access to block devices is likely to be
 
296
        restricted to a whitelist. Prior to saving a guest to a block device,
 
297
        it is necessary to add the block device to the whitelist. This is
 
298
        not required upon restore, since QEMU reads from stdin
 
299
 
 
300
        * src/qemu/qemu_driver.c: Add block device to cgroups whitelist
 
301
          if neccessary during domain save.
 
302
 
 
303
        Fix QEMU save/restore with block devices
 
304
        The save process was relying on use of the shell >> append
 
305
        operator to ensure the save data was placed after the libvirt
 
306
        header + XML. This doesn't work for block devices though.
 
307
        Replace this code with use of 'dd' and its 'seek' parameter.
 
308
        This means that we need to pad the header + XML out to a
 
309
        multiple of dd block size (in this case we choose 512).
 
310
 
 
311
        The qemuMonitorMigateToCommand() monitor API is used for both
 
312
        save/coredump, and migration via UNIX socket. We can't simply
 
313
        switch this to use 'dd' since this causes problems with the
 
314
        migration usage. Thus, create a dedicated qemuMonitorMigateToFile
 
315
        which can accept an filename + offset, and remove the filename
 
316
        from the current qemuMonitorMigateToCommand() API
 
317
 
 
318
        * src/qemu/qemu_driver.c: Switch to qemuMonitorMigateToFile
 
319
          for save and core dump
 
320
        * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
 
321
          src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
 
322
          src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h: Create
 
323
          a new qemuMonitorMigateToFile, separate from the existing
 
324
          qemuMonitorMigateToCommand to allow handling file offsets
 
325
 
 
326
        Avoid create/unlink with block devs used for QEMU save
 
327
        It is possible to use block devices with domain save/restore. Upon
 
328
        failure QEMU unlinks the path being saved to. This isn't good when
 
329
        it is a block device !
 
330
 
 
331
        * src/qemu/qemu_driver.c: Don't unlink block devices if save fails
 
332
 
 
333
        Fix crash when cleaning up from failed save attempt
 
334
        If a transient QEMU crashes during save attempt, then the virDomainPtr
 
335
        object may be freed. If a persistent QEMU crashes during save, then
 
336
        the 'priv->mon' field is no longer valid since it will be inactive.
 
337
 
 
338
        * src/qemu/qemu_driver.c: Fix two crashes when QEMU exits
 
339
          during a save attempt
 
340
 
 
341
2010-04-27  Stefan Berger  <stefanb@us.ibm.com>
 
342
 
 
343
        nwfilter: let qemu's after-migration packet pass
 
344
        Qemu currently sends an Ethernet packet with protocol id 0x835 once a VM
 
345
        was successfully migrated. The content of the packet looks like a
 
346
        gratuitous RARP, just with the wrong protocol ID, which should be
 
347
        0x8035. I wrote some filters to let either one of the packets pass and
 
348
        am adapting the clean-traffic sample filter to use it. I am also
 
349
        doing some changes on the existing ARP filter which was lacking a
 
350
        test for source MAC address.
 
351
 
 
352
2010-04-27  Chris Lalancette  <clalance@redhat.com>
 
353
 
 
354
        Fix up the error message if we can't parse the snapshot XML.
 
355
 
 
356
2010-04-27  Klaus Ethgen  <Klaus@Ethgen.de>
 
357
 
 
358
        The base used for conversion of USB values should be 16 not 10.
 
359
 
 
360
2010-04-27  Chris Lalancette  <clalance@redhat.com>
 
361
 
 
362
        Fix up the locking in the snapshot code.
 
363
        In particular I was forgetting to take the qemuMonitorPrivatePtr
 
364
        lock (via qemuDomainObjBeginJob), which would cause problems
 
365
        if two users tried to access the same domain at the same time.
 
366
        This patch also fixes a problem where I was forgetting to remove
 
367
        a transient domain from the list of domains.
 
368
 
 
369
        Thanks to Stephen Shaw for pointing out the problem and testing
 
370
        out the initial patch.
 
371
 
 
372
2010-04-27  Daniel Veillard  <veillard@redhat.com>
 
373
 
 
374
        cleanup the download section of the documentation
 
375
        Just removing reverences to the deprecated CVS server and the old git
 
376
        on et.redhat.com
 
377
 
 
378
2010-04-27  Stefan Berger  <stefanb@us.ibm.com>
 
379
 
 
380
        nwfilter: add support for RAPR protocol
 
381
        This patch adds support for the RARP protocol. This may be needed due to
 
382
        qemu sending out a RARP packet (at least that's what it seems to want to
 
383
        do even though the protocol id is wrong) when migration finishes and
 
384
        we'd need a rule to let the packets pass.
 
385
 
 
386
        Unfortunately my installation of ebtables does not understand -p RARP
 
387
        and also seems to otherwise depend on strings in /etc/ethertype
 
388
        translated to protocol identifiers. Therefore I need to pass -p 0x8035
 
389
        for RARP. To generally get rid of the dependency of that file I switch
 
390
        all so far supported protocols to use their protocol identifier in the
 
391
        -p parameter rather than the string.
 
392
 
 
393
        I am also extending the schema and added a test case.
 
394
 
 
395
        changes from v1 to v2:
 
396
        - added test case into patch
 
397
 
 
398
2010-04-27  Jiri Denemark  <jdenemar@redhat.com>
 
399
 
 
400
        Ignore qemu STOP event when stopping CPUs
 
401
        With JSON qemu monitor, we get a STOP event from qemu whenever qemu
 
402
        stops guests CPUs. The downside of it is that vm->state is changed to
 
403
        PAUSED and a new generic paused event is send to applications. However,
 
404
        when we ask qemu to stop the CPUs we are not really interested in qemu
 
405
        event and we usually want to issue a more specific event.
 
406
 
 
407
        By setting vm->status to PAUSED before actually sending the request to
 
408
        qemu (and resetting it back if the request fails) we can ignore the
 
409
        event since the event handler does nothing when the guest is already
 
410
        paused. This solution is quite hacky but unfortunately it's the best
 
411
        solution which I was able to come up with and it doesn't introduce a
 
412
        race condition.
 
413
 
 
414
        Fix build with DEBUG_RAW_IO=1
 
415
 
 
416
2010-04-27  David Allan  <dallan@redhat.com>
 
417
 
 
418
        Fix indentation for storage conf XML
 
419
        * virStorageEncryptionFormat is called from both
 
420
          virDomainDiskDefFormat and virStorageVolTargetDefFormat.  The proper
 
421
          indentation in the generated XML depends on the caller.  My earlier
 
422
          patch to fix the incorrect indentation for the domain XML broke the
 
423
          indentation for the storage XML.  This patch adopts Laine's
 
424
          suggestion of requring the caller of virStorageEncryptionFormat to
 
425
          provide an unsigned int with the number of spaces the output should
 
426
          be indented.  The patch modifies both callers to provide the
 
427
          additional argument.
 
428
 
 
429
        * Add a regression test for the domain XML
 
430
 
 
431
        * src/conf/domain_conf.c src/conf/storage_conf.c
 
432
          src/conf/storage_encryption_conf.c src/conf/storage_encryption_conf.h:
 
433
          change the indentation code
 
434
        * tests/qemuxml2xmltest.c
 
435
          tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.args
 
436
          tests/qemuxml2argvdata/qemuxml2argv-encrypted-disk.xml: add a regression test
 
437
 
 
438
2010-04-27  Daniel Veillard  <veillard@redhat.com>
 
439
 
 
440
        Don't try to build qemu and lxc on non-Linux platforms
 
441
        as their drivers requires linux only headers
 
442
 
 
443
2010-04-27  Matthias Bolte  <matthias.bolte@googlemail.com>
 
444
 
 
445
        cygwin: Handle differences in the XDR implementation
 
446
        Cygwin's XDR implementation defines xdr_u_int64_t instead of
 
447
        xdr_uint64_t and lacks IXDR_PUT_INT32/IXDR_GET_INT32.
 
448
 
 
449
        Alter the IXDR_GET_LONG regex in rpcgen_fix.pl so it doesn't destroy
 
450
        the #define IXDR_GET_INT32 IXDR_GET_LONG in remote_protocol.x.
 
451
 
 
452
        Also fix the remote_protocol.h regex in rpcgen_fix.pl.
 
453
 
 
454
2010-04-26  Matthias Bolte  <matthias.bolte@googlemail.com>
 
455
 
 
456
        Cygwin's GCC doesn't like this .sa_handler initialization for some reason
 
457
 
 
458
        linux/if.h header is not available on non-Linux platforms
 
459
 
 
460
2010-04-26  Stefan Berger  <stefanb@us.ibm.com>
 
461
 
 
462
        nwfilter: enable hex number inputs in filter XML
 
463
        With this patch I want to enable hex number inputs in the filter XML. A
 
464
        number that was entered as hex is also printed as hex unless a string
 
465
        representing the meaning can be found.
 
466
 
 
467
        I am also extending the schema and adding a test case. A problem with
 
468
        the DSCP value is fixed on the way as well.
 
469
 
 
470
        Changes from V1 to V2:
 
471
 
 
472
        - using asHex boolean in all printf type of functions to select the
 
473
        output format in hex or decimal format
 
474
 
 
475
2010-04-26  Satoru SATOH  <satoru.satoh@gmail.com>
 
476
 
 
477
        Starts dnsmasq from libvirtd with --dhcp-hostsfile option
 
478
        This patch makes libvirtd start the dnsmasq daemon with a
 
479
        --dhcp-hostsfile option instead of --dhcp-host options for each
 
480
        '//ip/dhcp/host' entries defined in network xml file.
 
481
 
 
482
        the dnsmasq host file is stored into /var/lib/libvirt/network
 
483
 
 
484
        * src/network/bridge_driver.c: define the directory for the hostfiles
 
485
          and save/delete them to be used by dnsmasq
 
486
 
 
487
        Add build support for dnsmasq module
 
488
        * po/POTFILES.in: the new module contains translatable strings
 
489
        * src/Makefile.am: include the files in the utils set
 
490
        * src/libvirt_private.syms: exports the symbols internally
 
491
 
 
492
        Add dnsmasq module files
 
493
        It implements an idea to save dhcp hosts' macaddr vs. ipaddr mappings to
 
494
        static file and make dnsmasq loading it with "--dhcp-hostsfile" option,
 
495
        originally suggested by Dan, and can address the problem that too
 
496
        many "--dhcp-host" args hitting ARG_MAX limit
 
497
 
 
498
        * src/util/dnsmasq.h src/util/dnsmasq.c: adds the 2 new files
 
499
 
 
500
2010-04-26  Daniel Veillard  <veillard@redhat.com>
 
501
 
 
502
        Fix make dist missing ESX generated files
 
503
        new method generated files are missing from dist tarball.
 
504
 
 
505
2010-04-23  Chris Lalancette  <clalance@redhat.com>
 
506
 
 
507
        Fix memory leak in virsh snapshot-list.
 
508
        We were forgetting to release the memory allocated by
 
509
        virDomainSnapshotListNames.  Free the memory properly.
 
510
 
 
511
        Fix printing of pathnames on error in qemuDomainSnapshotLoad.
 
512
        While doing some testing of the snapshot code I noticed that
 
513
        if qemuDomainSnapshotLoad failed, it would print a NULL as
 
514
        part of the error.  That's not desirable, so leave the
 
515
        full_path variable around until after we are done printing
 
516
        errors.
 
517
 
 
518
        Fix virDomainSnapshotObjFree memory leak.
 
519
        We were freeing the virDomainSnapshotDefPtr, but not
 
520
        the virDomainSnapshotObjPtr in virDomainSnapshotObjFree.
 
521
 
 
522
        Make virDomainSnapshotObjListDeinit static.
 
523
 
 
524
        Fix a memory leak in the snapshot code in libvirtd.
 
525
        While running libvirtd under valgrind and doing some
 
526
        snapshot testing I noticed that we would always leak a
 
527
        connection reference.  The problem was actually that we
 
528
        were leaking a domain reference in the libvirtd remote
 
529
        snapshot code, which was in turn causing a leaked
 
530
        connection reference.  Fix the situation by explicitly
 
531
        taking and dropping a domain reference where we need it.
 
532
 
 
533
2010-04-23  Matthias Bolte  <matthias.bolte@googlemail.com>
 
534
 
 
535
        cygwin: Check explicitly for getmntent_r
 
536
        Cygwin has mntent.h but lacks getmntent_r. Update preprocessor
 
537
        checks to catch this combination.
 
538
 
 
539
        Some NWFilter symbols are conditional and have to be exported conditional
 
540
 
 
541
        xen: Fix inside_daemon beeing unused when libvirtd is disabled
 
542
        The defined __sun is there, because inside_daemon is used in xenUnifiedOpen
 
543
        if __sun is defined.
 
544
 
 
545
        Disable stateful OpenNebula driver if libvirtd is disabled
 
546
        Also move the equivalent checks for LXC and UML before their header
 
547
        checks. This way configure doesn't check for the headers when the driver
 
548
        gets disabled anyway.
 
549
 
 
550
        Improve configure error message about missing Linux headers
 
551
 
 
552
2010-04-23  Eric Blake  <eblake@redhat.com>
 
553
 
 
554
        build: fix typo in previous commit
 
555
        * configure.ac: Avoid syntax error.
 
556
 
 
557
        build: don't include winsock2.h on cygwin
 
558
        Under cygwin, winsock2.h is intentionally incompatible with,
 
559
        <sys/socket.h>, and checking for existence is wrong.
 
560
 
 
561
        Under mingw, HAVE_WINSOCK2_H is defined on our behalf by
 
562
        gnulib, in a way that does not interfere with cygwin.
 
563
 
 
564
        * configure.ac: Drop unnecessary header check.
 
565
        Reported by Matthias Bolte.
 
566
 
 
567
2010-04-23  Luiz Capitulino  <lcapitulino@redhat.com>
 
568
 
 
569
        QEmu JSON drop timestamp from command object
 
570
        It's not needed and is currently ignored, but this is a bug.
 
571
 
 
572
        It will get fixed soon and QMP will return an error for keys
 
573
        it doesn't know about, this will break libvirt.
 
574
 
 
575
        * src/qemu/qemu_monitor_json.c: remove qemuMonitorJSONCommandAddTimestamp()
 
576
          and the place where it's invoked in qemuMonitorJSONMakeCommand()
 
577
 
 
578
2010-04-23  Stefan Berger  <stefanb@us.ibm.com>
 
579
 
 
580
        nwfilter: extend schema + add testcase w/ connlimit-above
 
581
        I am extending the schema with the recently added connlimit-above
 
582
        attribute and adding a test case for it to the test suite.
 
583
 
 
584
2010-04-23  Marco Bozzolan  <redshift@gmx.com>
 
585
 
 
586
        maint: update AUTHORS
 
587
        * AUTHORS: Use preferred name.
 
588
 
 
589
2010-04-23  Daniel P. Berrange  <berrange@redhat.com>
 
590
 
 
591
        Fix crash in nwfilter driver check
 
592
        The nwfilterDriverActive() could de-reference a NULL pointer
 
593
        if it hadn't be started at the point it was called. It was
 
594
        also not thread safe, since it lacked locking around data
 
595
        accesses.
 
596
 
 
597
        * src/nwfilter/nwfilter_driver.c: Fix locking & NULL checks
 
598
          in nwfilterDriverActive()
 
599
 
 
600
2010-04-22  Eric Blake  <eblake@redhat.com>
 
601
 
 
602
        addrToString: give better error message
 
603
        The user probably doesn't care what the gai error numbers are, as
 
604
        much as what the failed conversion IP address was.
 
605
 
 
606
        * src/remote/remote_driver.c (addrToString): Mention which address
 
607
        could not be converted.
 
608
        * daemon/remote.c (addrToString): Likewise.
 
609
 
 
610
        maint: update AUTHORS with recent contributors
 
611
        git shortlog $(git log -1 --format=%H AUTHORS).. | grep -v "^ "
 
612
 
 
613
        then add missing entries to AUTHORS.
 
614
 
 
615
        * AUTHORS: Update.
 
616
 
 
617
2010-04-22  Spencer Shimko  <sshimko@tresys.com>
 
618
 
 
619
        qemu: fix security context references in DAC code
 
620
        * The error messages coming from qemu's DAC support contain strings
 
621
          from the original SELinux security driver code.  This just removes
 
622
          references to "security context" and other SELinux-isms from the DAC
 
623
          code.
 
624
 
 
625
2010-04-22  Stefan Berger  <stefanb@us.ibm.com>
 
626
 
 
627
        Changes from V1 to V2:  - using INT_BUFSIZE_BOUND() to determine the length of the buffersize for printing and integer into
 
628
         - not explicitly initializing static var threadsTerminate to false
 
629
        anymore, since that's done automatically
 
630
 
 
631
        Changes after V2:
 
632
          - removed while looks in case of OOM error
 
633
          - removed on ifaceDown() call
 
634
          - preceding one ifaceDown() call with an ifaceCheck() call
 
635
 
 
636
        Since the name of an interface can be the same between stops and starts
 
637
        of different VMs I have to switch the IP address learning thread to use
 
638
        the index of the interface to determine whether an interface is still
 
639
        available or not - in the case of macvtap the thread needs to listen for
 
640
        traffic on the physical interface, thus having to time out periodically
 
641
        to check whether the VM's macvtap device is still there as an indication
 
642
        that the VM is still alive. Previously the following sequence of 2 VMs
 
643
        with macvtap device
 
644
 
 
645
        virsh start testvm1; virsh destroy testvm1 ; virsh start testvm2
 
646
 
 
647
        would not terminate the thread upon testvm1's destroy since the name of
 
648
        the interface on the host could be the same (i.e, macvtap0) on testvm1
 
649
        and testvm2, thus it was easily race-able. The thread would then
 
650
        determine the IP address parameter for testvm2 but apply the rule set
 
651
        for testvm1. :-(
 
652
        I am also introducing a lock for the interface (by name) that the thread
 
653
        must hold while it listens for the traffic and releases when it
 
654
        terminates upon VM termination or 0.5 second thereafter. Thus, the new
 
655
        thread for a newly started VM with the same interface name will not
 
656
        start while the old one still holds the lock. The only other code that I
 
657
        see that also needs to grab the lock to serialize operation is the one
 
658
        that tears down the firewall that were established on behalf of an
 
659
        interface.
 
660
 
 
661
        I am moving the code applying the 'basic' firewall rules during the IP
 
662
        address learning phase inside the thread but won't start the thread
 
663
        unless it is ensured that the firewall driver has the ability to apply
 
664
        the 'basic' firewall rules.
 
665
 
 
666
2010-04-22  David Allan  <dallan@redhat.com>
 
667
 
 
668
        Properly indent encryption tags
 
669
        * Fix for the bug reported at:
 
670
 
 
671
        https://bugzilla.redhat.com/show_bug.cgi?id=573908
 
672
 
 
673
2010-04-22  Jiri Denemark  <jdenemar@redhat.com>
 
674
 
 
675
        Fix locking in qemudDomainCoreDump
 
676
        The hang fix in d376b7d63ec1ef24ba4c812d58b9a414ddb561f8 was incomplete
 
677
        since it left quite a few {Enter,Exit}Monitor calls which require driver
 
678
        to be unlocked. Since the driver is locked throughout the whole
 
679
        function, {Enter,Exit}MonitorWithDriver need to be used instead to
 
680
        ensure driver is not locked when issuing monitor commands.
 
681
 
 
682
        Poll for migration end every 50ms instead of 50us
 
683
        The comment in qemuDomainWaitForMigrationComplete says we are polling
 
684
        every 50ms but the code sleeps only for 50us. This was already discussed
 
685
        during review but apparently forgotten when the series was pushed.
 
686
 
 
687
2010-04-22  Spencer Shimko  <sshimko@tresys.com>
 
688
 
 
689
        configure.ac SELinux fixes
 
690
        * Fix a logic error in configure.ac that prevented --with-selinux=no
 
691
          from being used with --with-secdriver-selinux=no.
 
692
 
 
693
        * Fix some strings to clarify the difference between --with-selinux
 
694
          and --with-secdriver-selinux.
 
695
 
 
696
2010-04-22  Daniel P. Berrange  <berrange@redhat.com>
 
697
 
 
698
        Fix QEMU text monitor command error checking
 
699
        The text monitor code was checking for a '\n' prefix on several
 
700
        places. Previously this would work, but since the monitor code
 
701
        re-write the '\n' is already stripped off, so mustn't be checked
 
702
        for.
 
703
 
 
704
        * src/qemu/qemu_monitor_text.c: Fix monitor error checking
 
705
 
 
706
        Fix CPU hotplug command names
 
707
        Probably as a result of a merge error, the CPU hotplug command
 
708
        names were completely wrong.
 
709
 
 
710
        * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_text.c: Fix
 
711
          the CPU hotplug command names
 
712
 
 
713
        Fix printing of event detail in python events demo program
 
714
        The events demo program is slightly misleading printing
 
715
 
 
716
          myDomainEventCallback1 EVENT: Domain f14i686(-1) Added
 
717
 
 
718
        which is not distinguishing Add vs Update events. It should have
 
719
        been doing
 
720
 
 
721
          myDomainEventCallback1 EVENT: Domain f14i686(-1) Defined Updated
 
722
 
 
723
        * examples/domain-events/events-python/event-test.py: Fully print
 
724
          event detail info string
 
725
 
 
726
2010-04-22  Dustin Kirkland  <kirkland@canonical.com>
 
727
 
 
728
        portability fixes to tools/virt-pki-validate.in
 
729
        A few fixes will help make tools/virt-pki-validate.in useful on Debian
 
730
        and Ubuntu.  And one fix should be useful to everyone (see #3).
 
731
 
 
732
         1) note our gnutls-bin package (in addition to your gnutls-utils
 
733
        package) in the no-certtool error text
 
734
 
 
735
         2) fix a bashism, == should be = in the case where /bin/sh is a symlink
 
736
        to dash
 
737
 
 
738
         3) $(SYSCONFDIR) cannot evaluate; set a single shell SYSCONFDIR
 
739
        variable to the autoconf @SYSCONFDIR@ value, and use $SYSCONFDIR
 
740
        everywhere
 
741
 
 
742
        Bug report:
 
743
         * https://bugs.edge.launchpad.net/ubuntu/+source/libvirt/+bug/562266
 
744
 
 
745
2010-04-22  Eric Blake  <eblake@redhat.com>
 
746
 
 
747
        maint: enforce whitespace on shell scripts
 
748
        Noticed because virt-pki-validate was very inconsistent on
 
749
        using tabs vs. 8 spaces, sometimes mixing both paradigms on
 
750
        a single line.
 
751
 
 
752
        'git diff -b' shows significant changes only in cfg.mk.
 
753
 
 
754
        * cfg.mk (sc_TAB_in_indentation): Add a few files.
 
755
        * daemon/libvirtd.init.in: Avoid tabs.
 
756
        * tools/virt-pki-validate.in: Likewise.
 
757
 
 
758
        testutilsqemu: avoid uninitialized variable
 
759
        * tests/testutilsqemu.c (testQemuCapsInit): Initialize variables.
 
760
 
 
761
2010-04-22  Jiri Denemark  <jdenemar@redhat.com>
 
762
 
 
763
        Fake host CPU for qemu tests
 
764
 
 
765
        Use configured CPU model if possible
 
766
        Adds ability to provide a preferred CPU model for CPUID data decoding.
 
767
        Such model would be considered as the best possible model (if it's
 
768
        supported by hypervisor) regardless on number of features which have to
 
769
        be added or removed for describing required CPU.
 
770
 
 
771
        Support removing features when converting data to CPU
 
772
        So far, when CPUID data were converted into CPU model and features, the
 
773
        features can only be added to the model. As a result, when a guest asked
 
774
        for something like "qemu64,-svm" it would get a qemu32 plus a bunch of
 
775
        additional features instead.
 
776
 
 
777
        This patch adds support for removing feature from the base model.
 
778
        Selection algorithm remains the same: the best CPU model is the model
 
779
        which requires lowest number of features to be added/removed from it.
 
780
 
 
781
        Move MIN macro to util.h so that others can use it
 
782
 
 
783
        Deal with CPU models in []
 
784
        Qemu committed a patch which list some CPU names in [] when asked for
 
785
        supported CPUs (qemu -cpu ?). Yet, it needs such CPUs to be passed
 
786
        without those square braces. When probing for supported CPU models, we
 
787
        can just strip the square braces and pretend we have never seen them.
 
788
 
 
789
        Fix initial VCPU pinning in qemu driver
 
790
        First, inital VCPU pinning is set correctly but then it is reset by
 
791
        assigning qemu process to a new cgroup (which contains all CPUs). It's
 
792
        easily fixed by swapping these two actions.
 
793
 
 
794
2010-04-21  Eric Blake  <eblake@redhat.com>
 
795
 
 
796
        maint: ignore 'make syntax-check' failure files
 
797
        * .gitignore: Add exemption.
 
798
        * cfg.mk (local-checks-to-skip): Ignore a test to silence a skip
 
799
        warning.
 
800
 
 
801
2010-04-21  Chris Lalancette  <clalance@redhat.com>
 
802
 
 
803
        Make avahi startup more robust.
 
804
        If the hostname of the current virtualization machine
 
805
        could not be resolved, then libvirtd would fail to
 
806
        start.  However, for disconnected operation (on a laptop,
 
807
        for instance) the hostname may very legitimately not
 
808
        be resolvable.  This patch makes it so that if we can't
 
809
        resolve the hostname, avahi doesn't fail, it just uses
 
810
        a less useful MDNS string.
 
811
 
 
812
2010-04-21  Guido Günther  <agx@sigxcpu.org>
 
813
 
 
814
        Ignore empty type attribute in driver element of virtual disks
 
815
        Fixes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=578347
 
816
 
 
817
2010-04-21  Eric Blake  <eblake@redhat.com>
 
818
 
 
819
        build: fix preprocessor indentation
 
820
        * src/esx/esx_vi.h: Placate cppi.
 
821
 
 
822
2010-04-21  Chris Wong  <wongc-redhat@hoku.net>
 
823
 
 
824
        esx: Don't treat an empty root snapshot list as error
 
825
        An empty root snapshot list was considered as error condition. Creating a
 
826
        new snapshot would fail if the domain didn't have snapshots yet, because
 
827
        the snapshot-create function tries to lookup the list of existing snapshots
 
828
        in order to verify that the snapshot name is unique. This fails if the
 
829
        domain doesn't have snapshots yet.
 
830
 
 
831
        Removing the NULL check from esxVI_LookupRootSnapshotTreeList fixes this.
 
832
 
 
833
2010-04-21  Matthias Bolte  <matthias.bolte@googlemail.com>
 
834
 
 
835
        esx: Gather some XML generation macros in esx_vi.h
 
836
 
 
837
        esx: Fix FindByIp response handling
 
838
        FindByIp may return nothing if there is no host or virtual machine
 
839
        with the given IP address. Handle that case properly.
 
840
 
 
841
        esx: Fix virtualHW.version generation
 
842
        The supported virtualHW.version doesn't depend on the API version,
 
843
        but on the product version.
 
844
 
 
845
2010-04-20  Stefan Berger  <stefanb@us.ibm.com>
 
846
 
 
847
        nwfilter: add support for connlimit match
 
848
        This patch adds support for the connlimit match in iptables that is used
 
849
        to limit the number of outgoing directions.
 
850
 
 
851
        Extend fwall-drv interface and call functions via interface
 
852
        I am moving some of the eb/iptables related functions into the interface
 
853
        of the firewall driver and am making them only accessible via the driver's
 
854
        interface. Otherwise exsiting code is adapted where needed. I am adding one
 
855
        new function to the interface that checks whether the 'basic' rules can be
 
856
        applied,  which will then be used by a subsequent patch.
 
857
 
 
858
2010-04-20  Eric Blake  <eblake@redhat.com>
 
859
 
 
860
        build: avoid compiler warning
 
861
        According to GCC, ATTRIBUTE_UNUSED means that an attribute _might_
 
862
        be unused, not _must_ be unused.  Therefore, it is easier to
 
863
        blindly mark a variable, than to try and do preprocessor limiting
 
864
        of when we know it is unused.
 
865
 
 
866
        * src/remote/remote_driver.c (remoteAuthenticate): Mark attribute
 
867
        as potentially unused.
 
868
        Reported by Gustovo Morozowski.
 
869
 
 
870
2010-04-20  Matthias Bolte  <matthias.bolte@googlemail.com>
 
871
 
 
872
        Explicitly set virStoragePoolTypeInfo FS and NETFS defaults
 
873
        No semantic change, the now explicitly set default are all zero and
 
874
        that's what GCC sets unspecified struct members to.
 
875
 
 
876
        esx: Add support for the VMXNET 2 (Enhanced) NIC model
 
877
        Add a test case and document it.
 
878
 
 
879
        Mark in_open parameter of remoteAuthenticate as unused when it's unused
 
880
        Otherwise compiling with -Werror will fail.
 
881
 
 
882
2010-04-20  Philipp Hahn  <hahn@univention.de>
 
883
 
 
884
        Install nwfilter xml files from source directory.
 
885
        During an out-of-tree build, the current working directory is the build
 
886
        directory. Since the FILTERS are static and not modified or
 
887
        auto-generated during the build process, they need to be explicitly
 
888
        fetched from the source directory during install.
 
889
 
 
890
        Prefix the files with $(srcdir), which gets expanded to the absolute or
 
891
        relative path to the source directory, even when duing out-of-tree
 
892
        builds.
 
893
 
 
894
        Don't ship generated python/libvirt.? files.
 
895
        libvirt.c and libvirt.h are auto-generated files. Mentioning their names
 
896
        in *_SOURCES includes them in the distribution. During an out-of-tree
 
897
        build these shipped files are included instead of the auto-generated
 
898
        version, potentially breaking the build (as it happend in 0.8.0, because
 
899
        the shipped libvirt.h was missing the declaration for
 
900
        'libvirt_virDomainUpdateDeviceFlags')
 
901
 
 
902
        Use the nodist_*_SOURCES automake variable instead.
 
903
 
 
904
2010-04-20  Daniel P. Berrange  <berrange@redhat.com>
 
905
 
 
906
        Fixup python binding for virDomainSnapshot APIs
 
907
        The generator code was totally wrong for the virDomainSnapshot
 
908
        APIs, not generating the wrapper class, and giving methods the
 
909
        wrong names
 
910
 
 
911
        * generator.py: Set metadata for virDomainSnapshot type & APIs
 
912
        * libvirt-override-api.xml, libvirt-override.c: Hand-code the
 
913
          virDomainSnapshotListNames glue layer
 
914
 
 
915
2010-04-19  Daniel P. Berrange  <berrange@redhat.com>
 
916
 
 
917
        Fix network hotplug to use device_add in QEMU
 
918
        The initial boot of VMs uses -device for NICs where available. The
 
919
        corresponding monitor command is device_add, but the network hotplug
 
920
        code was still using device_del by mistake.
 
921
 
 
922
        * src/qemu/qemu_driver.c: Use device_add for NIC hotplug where
 
923
          available
 
924
 
 
925
        Fix error reporting for getfd + host_net_add in QEMU
 
926
        If either of the getfd or host_net_add monitor commands return
 
927
        any text, this indicates an error condition. Don't ignore this!
 
928
 
 
929
        * src/qemu/qemu_monitor_text.c: Report errors for getfd and
 
930
          host_net_add
 
931
 
 
932
        Fix device_del in JSON mode for QEMU
 
933
        The 'device_del' command expects a parameter called 'id' but we
 
934
        were passing 'config'.
 
935
 
 
936
        * src/qemu/qemu_monitor_json.c: Fix device_del command parameter
 
937
 
 
938
2010-04-17  Matthias Bolte  <matthias.bolte@googlemail.com>
 
939
 
 
940
        nwfilter: Free nwfilter hash of virConnectPtr
 
941
        And close the driver on connection close.
 
942
 
 
943
        Replace printf with logging macros
 
944
 
 
945
2010-04-16  Jiri Denemark  <jdenemar@redhat.com>
 
946
 
 
947
        Mark internal.h for translation
 
948
 
 
949
        Use virCheckFlags for APIs added in 0.8.0
 
950
 
 
951
        Introduce virCheckFlags for consistent flags checking
 
952
        The idea is that every API implementation in driver which has flags
 
953
        parameter should first call virCheckFlags() macro to check the function
 
954
        was called with supported flags:
 
955
 
 
956
            virCheckFlags(VIR_SUPPORTED_FLAG_1 |
 
957
                          VIR_SUPPORTED_FLAG_2 |
 
958
                          VIR_ANOTHER_SUPPORTED_FLAG, -1);
 
959
 
 
960
        The error massage which is printed when unsupported flags are passed
 
961
        looks like:
 
962
 
 
963
            invalid argument in virFooBar: unsupported flags (0x2)
 
964
 
 
965
        Where the unsupported flags part only prints those flags which were
 
966
        passed but are not supported rather than all flags passed.
 
967
 
 
968
2010-04-16  Stefan Berger  <stefanb@us.ibm.com>
 
969
 
 
970
        nwfilter: Clear all state tracking from a drop rule
 
971
        Don't use state-matching in a drop rule.
 
972
 
 
973
2010-04-15  Matthias Bolte  <matthias.bolte@googlemail.com>
 
974
 
 
975
        esx: Replace scanf with STRSKIP and strtok_r
 
976
        This also fixes a portability problem with the %a format modifier.
 
977
        %a is not portable and made esxDomainDumpXML fail at runtime in
 
978
        MinGW builds.
 
979
 
 
980
        Update to latest gnulib to get strtok_r relaxed to LGPLv2+
 
981
        strtok_r will be used in the ESX driver to replace scanf-based code.
 
982
 
 
983
        MinGW lacks strtok_r, so we need gnulib to provide it, but until now
 
984
        strtok_r was licensed LGPL3.
 
985
 
 
986
        esx: Add nwfilter driver stub
 
987
        This stops libvirt trying to connect to a non-existing libvirtd on the
 
988
        ESX server in order to find a nwfilter driver.
 
989
 
 
990
2010-04-15  Eric Blake  <eblake@redhat.com>
 
991
 
 
992
        remote: react to failures on wakeupFD
 
993
        * src/remote/remote_driver.c (remoteIO, remoteIOEventLoop): Report
 
994
        failures on pipe used for wakeup.
 
995
        Reported by Chris Lalancette.
 
996
 
 
997
        util: ensure safe{read,write,zero} return is checked
 
998
        Based on a warning from coverity.  The safe* functions
 
999
        guarantee complete transactions on success, but don't guarantee
 
1000
        freedom from failure.
 
1001
 
 
1002
        * src/util/util.h (saferead, safewrite, safezero): Add
 
1003
        ATTRIBUTE_RETURN_CHECK.
 
1004
        * src/remote/remote_driver.c (remoteIO, remoteIOEventLoop): Ignore
 
1005
        some failures.
 
1006
        (remoteIOReadBuffer): Adjust error messages on read failure.
 
1007
        * daemon/event.c (virEventHandleWakeup): Ignore read failure.
 
1008
 
 
1009
        maint: another preprocessor fix
 
1010
        Regression introduced in commit 62170b995.
 
1011
 
 
1012
        * src/util/memory.h: Placate cppi, and fit 80 columns.
 
1013
 
 
1014
2010-04-15  Daniel P. Berrange  <berrange@redhat.com>
 
1015
 
 
1016
        Fix CDROM media change for QEMU when using -device syntax
 
1017
        Disk devices in QEMU have two parts, the guest device and the host
 
1018
        backend driver. Historically these two parts have had the same
 
1019
        "unique" name. With the switch to using -device though, they now
 
1020
        have separate names. Thus when changing CDROM media, for guests
 
1021
        using -device syntax, we need to prepend the QEMU_DRIVE_HOST_PREFIX
 
1022
        constant
 
1023
 
 
1024
        * src/qemu/qemu_conf.c, src/qemu/qemu_conf.h: Add helper function
 
1025
          qemuDeviceDriveHostAlias() for building a host backend alias
 
1026
        * src/qemu/qemu_driver.c: Use qemuDeviceDriveHostAlias() to determine
 
1027
          the host backend alias for performing eject/change commands in the
 
1028
          monitor
 
1029
 
 
1030
        Update QEMU device_add command in JSON mode
 
1031
        The device_add command was added in JSON mode in a way I didn't
 
1032
        expect. Instead of passing the normal device string to the JSON
 
1033
        command:
 
1034
 
 
1035
            { "execute": "device_add", "arguments": { "device": "ne2k_pci,id=nic.1,netdev=net.1" } }
 
1036
 
 
1037
        We need to split up the device string into a full JSON object
 
1038
 
 
1039
            { "execute": "device_add", "arguments": { "driver": "ne2k_pci", "id": "nic.1", "netdev": "net.1" } }
 
1040
 
 
1041
        * src/qemu/qemu_conf.h, src/qemu/qemu_conf.c: Rename the
 
1042
          qemuCommandLineParseKeywords method to qemuParseKeywords
 
1043
          and export it to monitor
 
1044
        * src/qemu/qemu_monitor_json.c: Split up device string into
 
1045
          a JSON object for device_add command
 
1046
 
 
1047
        Rename parameter in qemuMonitorDeviceDel
 
1048
        The parameter for the qemuMonitorDeviceDel() is a device alias,
 
1049
        not a device config string. Rename the parameter reflect this
 
1050
        and avoid confusion to readers.
 
1051
 
 
1052
        * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
 
1053
          src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h,
 
1054
          src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
 
1055
          Rename devicestr to devalias in qemuMonitorDeviceDel()
 
1056
 
 
1057
        Remove code from JSON monitor for commands that won't be ported
 
1058
        The QEMU developers have stated that they will not be porting
 
1059
        the commands 'pci_add', 'pci_del', 'usb_add', 'usb_del' to the
 
1060
        JSON mode monitor, since they're obsoleted by 'device_add'
 
1061
        and 'device_del'. libvirt has (untested) code that would have
 
1062
        supported those commands in theory, but since we already use
 
1063
        device_add/del where available, there's no need to keep the
 
1064
        legacy stuff anymore.
 
1065
 
 
1066
        The text mode monitor keeps support for all commands for sake
 
1067
        of historical compatability.
 
1068
 
 
1069
        * src/qemu/qemu_monitor_json.c: Remove 'pci_add', 'pci_del',
 
1070
          'usb_add', 'usb_del' commands
 
1071
 
 
1072
        Run test suite as part of RPM build process
 
1073
        To ensure that patches in the RPM don't break any functionality
 
1074
        it is neccessary to run the test suites during build. It currently
 
1075
        has 3 tests disabled
 
1076
 
 
1077
         - daemon-conf: this is totally broken, since it relies on
 
1078
           being able to resolve the 'libvirt' group & being able to
 
1079
           resolve hostnames at daemon startup. This isn't possible
 
1080
           in a mock build root
 
1081
         - seclabeltest: fails to initialize selinux in the mock
 
1082
           build root. Possibly fixable
 
1083
         - nodeinfotest: broken on s390 + ppc - this is a real bug
 
1084
 
 
1085
        * libvirt.spec.in: Add a %check section, with 3 tests
 
1086
           temporarily disabled
 
1087
 
 
1088
        Fix QEMU memory stats JSON mode
 
1089
        The QEMU driver is mistakenly calling directly into the text
 
1090
        mode monitor for the domain memory stats query.
 
1091
 
 
1092
        * src/qemu/qemu_driver.c: Replace qemuMonitorTextGetMemoryStats with
 
1093
          qemuMonitorGetMemoryStats
 
1094
        * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Add the new
 
1095
          wrapper for qemuMonitorGetMemoryStats
 
1096
        * src/qemu/qemu_monitor_json.c, src/qemu/qemu_monitor_json.h: Add
 
1097
          qemuMonitorJSONGetMemoryStats implementation
 
1098
 
 
1099
        Fix QEMU command building errors to reflect unsupported configuration
 
1100
        Instead of reporting VIR_ERR_INTERNAL_ERROR use the more specific
 
1101
        VIR_ERR_CONFIG_UNSUPPORTED
 
1102
 
 
1103
        * src/qemu/qemu_conf.c: Report VIR_ERR_CONFIG_UNSUPPORTED for
 
1104
          unsupported video adapters
 
1105
 
 
1106
2010-04-15  Stefan Berger  <stefanb@us.ibm.com>
 
1107
 
 
1108
        nwfilter: fix tear down order and consolidate functions
 
1109
        To avoid race-conditions, the tear down of a filter has to happen before
 
1110
        the tap interface disappears and another tap interface with the same
 
1111
        name can re-appear. This patch tries to fix this. In one place, where
 
1112
        communication with the qemu monitor may fail, I am only tearing the
 
1113
        filters down after knowing that the function did not fail.
 
1114
 
 
1115
        I am also moving the tear down functions into an include file for other
 
1116
        drivers to reuse.
 
1117
 
 
1118
        Trivial fix: Add braces to for statement to avoid crashes
 
1119
        I am adding braces around the for statement that are now needed to due the
 
1120
        new sa_assert immediately following the for statement.
 
1121
 
 
1122
2010-04-15  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1123
 
 
1124
        Fix close_used_without_including_unistd_h error
 
1125
        Triggered by gnulib when compiling with MinGW.
 
1126
 
 
1127
        Fix apibuild.py warnings about missing ':'
 
1128
 
 
1129
2010-04-14  David Allan  <dallan@redhat.com>
 
1130
 
 
1131
        Implement variable length structure allocator
 
1132
        * This patch implements a memory allocator to obtain memory for
 
1133
          structures whose last member is a variable length array.  C99 refers
 
1134
          to these variable length objects as structs containing flexible
 
1135
          array members.
 
1136
        * Fixed macro parentheses per Eric Blake
 
1137
 
 
1138
2010-04-14  Jim Meyering  <meyering@redhat.com>
 
1139
 
 
1140
        qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang
 
1141
        * src/util/conf.c (virConfParseValue): Add an sa_assert.
 
1142
 
 
1143
        xend_internal.c: assure clang that we do not dereference NULL
 
1144
        * src/xen/xend_internal.c (xend_parse_sexp_desc_char): Add three
 
1145
        uses of sa_assert, each preceding a strchr(value,... to assure
 
1146
        clang that "value" is non-NULL.
 
1147
 
 
1148
        qemudDomainAttachSCSIDisk: avoid FP NULL-ptr-deref from clang
 
1149
        * src/qemu/qemu_driver.c (qemudDomainAttachSCSIDisk):
 
1150
        Initialize "cont" to NULL, so clang knows it's set.
 
1151
        Add an sa_assert so it knows it's non-NULL when dereferenced.
 
1152
 
 
1153
        virGetHostnameLocalhost: avoid FP NULL-ptr-deref from clang
 
1154
        * src/util/util.c (virGetHostnameLocalhost): Add an sa_assert
 
1155
        to tell clang it's ok to dereference "info" after a non-failing
 
1156
        getaddrinfo call.
 
1157
 
 
1158
        nwfilter_ebiptables_driver.c: avoid NULL dereference
 
1159
        * src/nwfilter/nwfilter_ebiptables_driver.c (ebiptablesApplyNewRules):
 
1160
        Don't dereference a NULL or uninitialized pointer when given
 
1161
        an empty list of rules.  Add an sa_assert(inst) in each loop to
 
1162
        tell clang that the uses of "inst[i]" are valid.
 
1163
 
 
1164
        build: set STATIC_ANALYSIS when running via clang or coverity
 
1165
        * configure.ac (STATIC_ANALYSIS): Define when run via clang's
 
1166
        scan-build or coverity-prevent's cov-build.
 
1167
        Use the CLANG_CC and COVERITY_BUILD_COMMAND envvars as witnesses.
 
1168
 
 
1169
        sa_assert: assert-like macro, enabled only for use with static analyzers
 
1170
        Among some here, there is a strong aversion to the use of "assert", yet
 
1171
        some others think it is essential (when applied judiciously) even --
 
1172
        perhaps "especially" -- at the heart of libraries and core hypervisor-
 
1173
        related code.
 
1174
        Here is a compromise that lets us make assertions about the code (e.g.,
 
1175
        to tell static analyzers about invariants) without even a hint of risk
 
1176
        of an abort.
 
1177
        * src/internal.h [STATIC_ANALYSIS]: Include <assert.h>.
 
1178
        (sa_assert): Define.  A no-op most of the time, but equivalent
 
1179
        to classical assert when STATIC_ANALYSIS is nonzero.
 
1180
 
 
1181
2010-04-14  Eric Blake  <eblake@redhat.com>
 
1182
 
 
1183
        build: fix recent 'make syntax-check' failure
 
1184
        * src/esx/esx_vi_methods.h: Placate cppi.
 
1185
 
 
1186
        virt-aa-helper-test: avoid non-portable echo -n
 
1187
        * tests/virt-aa-helper-test (testme): Use printf instead.
 
1188
 
 
1189
2010-04-14  Jim Meyering  <meyering@redhat.com>
 
1190
 
 
1191
        schematestutils.sh: improve shell portability: avoid "echo -e"
 
1192
        * tests/schematestutils.sh: Use printf rather than echo -e.
 
1193
 
 
1194
        virStorageBackendFileSystemMount: prefer strdup over virAsprintf
 
1195
        * src/storage/storage_backend_fs.c (virStorageBackendFileSystemMount):
 
1196
        Use virAsprintf only when needed.  In this case, strdup works fine.
 
1197
 
 
1198
        virStorageBackendFileSystemMount: placate clang
 
1199
        * src/storage/storage_backend_fs.c (virStorageBackendFileSystemMount):
 
1200
        Clang was not smart enough, and mistakenly reported that "options"
 
1201
        could be used uninitialized.  Initialize it.
 
1202
 
 
1203
2010-04-14  Laine Stump  <laine@laine.org>
 
1204
 
 
1205
        Implement forgotten backend of virInterfaceIsActive()
 
1206
        Somehow the backend of this function was never implemented in
 
1207
        libvirt's netcf driver, and nobody noticed until now. (The required
 
1208
        netcf function was already in place, so nothing needs to change
 
1209
        there.)
 
1210
        * src/interface/netcf_driver.c: add in the backend function, and point
 
1211
                                        to it from the table of driver functions.
 
1212
 
 
1213
2010-04-14  Jim Meyering  <meyering@redhat.com>
 
1214
 
 
1215
        openvzGetProcessInfo: address clang-detected low-probability flaw
 
1216
        * src/openvz/openvz_driver.c (openvzGetProcessInfo): Reorganize
 
1217
        so that unexpected /proc/vz/vestat content cannot make us use
 
1218
        uninitialized variables.  Without this change, an input line with
 
1219
        a matching "readvps", but fewer than 4 numbers would result in our
 
1220
        using at least "systime" uninitialized.
 
1221
 
 
1222
        vshCommandRun: avoid used-uninitialized timing-related report from clang
 
1223
        * tools/virsh.c (vshCommandRun): Test only the initial value of
 
1224
        ctl->timing, so that static analyzers don't have to consider that
 
1225
        it might be changed by cmd->def->handler.
 
1226
 
 
1227
2010-04-14  Stefan Berger  <stefanb@us.ibm.com>
 
1228
 
 
1229
        nwfilter: use virFindFileInPath for needed CLI tools
 
1230
        I am getting rid of determining the path to necessary CLI tools at
 
1231
        compile time. Instead, now the firewall driver has an initialization
 
1232
        function that uses virFindFileInPath() to determine the path to
 
1233
        necessary CLI tools and a shutdown function to free allocated memory.
 
1234
        The rest of the patch mostly deals with availability of the CLI tools
 
1235
        and to not call certain code blocks if a tool is not available and that
 
1236
        strings now have to be built slightly differently.
 
1237
 
 
1238
2010-04-14  Matthias Bolte  <matthias.bolte@googlemail.com>
 
1239
 
 
1240
        esx: Extend esx_vi_generator.py to cover methods too
 
1241
        Generate almost all SOAP method mapping code.
 
1242
 
 
1243
        Update the driver code to use the complete paramater list of some methods
 
1244
        that had parameters skipped before.
 
1245
 
 
1246
        Improve the ESX_VI__METHOD marco to do automatic output deserialization
 
1247
        based on output occurrence. Also incorporate automatic _this binding and
 
1248
        output pointer check.
 
1249
 
 
1250
2010-04-14  Jim Meyering  <meyering@redhat.com>
 
1251
 
 
1252
        esxVMX_GatherSCSIControllers: avoid NULL dereference
 
1253
        * src/esx/esx_vmx.c (esxVMX_GatherSCSIControllers): Do not dereference
 
1254
        a NULL disk->driverName.  We already detect this condition in another
 
1255
        case.  Check for it here, too.
 
1256
 
 
1257
2010-04-13  Chris Lalancette  <clalance@redhat.com>
 
1258
 
 
1259
        Fix build of openvz on RHEL-5.
 
1260
        When building libvirt on RHEL-5, I saw this error:
 
1261
 
 
1262
        cc1: warnings being treated as errors
 
1263
        openvz/openvz_conf.c: In function 'openvzGetVPSUUID':
 
1264
        openvz/openvz_conf.c:835: warning: 'saveptr' may be used uninitialized in this function
 
1265
        make[3]: *** [libvirt_driver_openvz_la-openvz_conf.lo] Error 1
 
1266
 
 
1267
        gcc in RHEL-5 gets upset about this usage of strtok_r (even though
 
1268
        it is perfectly valid).  Just set *saveptr to NULL at the
 
1269
        start to quiet it down.
 
1270
 
 
1271
        Fix up formatting of remote protocol stuff.
 
1272
 
 
1273
        Fix messsage -> message.
 
1274
 
 
1275
        Fix up a debug typo.
 
1276
 
 
1277
        Remove some debugging leftovers.
 
1278
 
 
1279
2010-04-13  Stefan Berger  <stefanb@us.ibm.com>
 
1280
 
 
1281
        Consolidate interface related functions in interface.c
 
1282
        Changes from v1 to v2:
 
1283
        - changed function name prefixes to 'iface' from previous 'Iface'
 
1284
 
 
1285
        - Further to make make syntax-check pass:
 
1286
         - indentation fix in interface.h
 
1287
         - added entry to POTFILES.in
 
1288
 
 
1289
        I am consolidating network interface related functions used in nwfilter
 
1290
        and macvtap code in utils/interface.c. All function names are prefixed
 
1291
        with 'Iface'. The following functions are now available through
 
1292
        interface.h:
 
1293
 
 
1294
        int ifaceCtrl(const char *name, bool up);
 
1295
        int ifaceUp(const char *name);
 
1296
        int ifaceDown(const char *name);
 
1297
 
 
1298
        int ifaceCheck(bool reportError, const char *ifname,
 
1299
                       const unsigned char *macaddr, int ifindex);
 
1300
 
 
1301
        int ifaceGetIndex(bool reportError, const char *ifname, int *ifindex);
 
1302
 
 
1303
        I added 'int ifindex' as parameter to ifaceCheck to the original
 
1304
        function and modified the code accordingly.
 
1305
 
 
1306
2010-04-13  Daniel P. Berrange  <berrange@redhat.com>
 
1307
 
 
1308
        Fix nodeinfotest on NUMA machines
 
1309
        The nodeinfotest was reliant on the host NUMA topology, but all
 
1310
        the test data files assumed 1 single NUMA node. This test thus
 
1311
        failed on any NUMA machine with > 1 node
 
1312
 
 
1313
        * tests/nodeinfotest.c: Hardcode 1 single numa node
 
1314
 
 
1315
2010-04-13  Eric Blake  <eblake@redhat.com>
 
1316
 
 
1317
        build: include usleep gnulib module
 
1318
        Without this module, attempts to sleep for 1 or more seconds
 
1319
        on mingw instead become a no-delay no-op.
 
1320
 
 
1321
        * bootstrap.conf (gnulib_modules): Add usleep.
 
1322
 
 
1323
2010-04-13  Daniel Berteaud  <daniel@firewall-services.com>
 
1324
 
 
1325
        Fix spec file for builds without lxc
 
1326
        * libvirt.spec.in: fix a cut and paste error
 
1327
 
 
1328
2010-04-13  Eric Blake  <eblake@redhat.com>
 
1329
 
 
1330
        build: fix syntax-check problems
 
1331
        * .x-sc_prohibit_gettext_noop: Add new exemption.
 
1332
        * .x-sc_prohibit_test_minus_ao: Likewise.
 
1333
        * Makefile.am (EXTRA_DIST): Distribute new files.
 
1334
        * .gitignore: Ignore built file.
 
1335
 
 
1336
2010-04-12  Stefan Berger  <stefanb@us.ibm.com>
 
1337
 
 
1338
        add nwfilter functions to virsh man page
 
1339
        With Eric Blake's spelling corrections applied.
 
1340
 
 
1341
        Unfortunately after the 0.8.0 release, but here's a beginning of the
 
1342
        documentation of the nwfilter functionality.
 
1343
 
1
1344
2010-04-12  Daniel Veillard  <veillard@redhat.com>
2
1345
 
3
1346
        Release of libvirt-0.8.0