2019-11-26 Daniel P. Berrangé <berrange@redhat.com>
Bump version & update NEWS for 3.0.0 release
2019-10-01 Fabiano Fidêncio <fidencio@redhat.com>
gconfig-domain-video: Add bochs video device
https://bugzilla.redhat.com/show_bug.cgi?id=1753670
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-09-05 Fabiano Fidêncio <fidencio@redhat.com>
tests,test-gconfig: Check _domain_os_get_machine()
Let's add one more simple check for gvir_config_domain_os_get_machine().
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add _domain_os_get_firmware()
Add a way to get the value of <os firmware="bios|efi"/> which has been
set to the domain XML.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-08-19 Daniel P. Berrangé <berrange@redhat.com>
Set desired glib min/max API versions
Setting GLIB_VERSION_MAX_ALLOWED ensures we get warnings if
we use APIs that are newer than our declared minimum glib
version.
Setting GLIB_VERSION_MIN_REQUIRED ensures that we get
warnings if we use APIs deprecated in versions preceeding
this.
If the latter is omitted then we get warnings for all
deprecations in glib, which is undesirable if we want to
keep compat with older versions.
This avoids a build error with latest glib
./../libvirt-gconfig/libvirt-gconfig-capabilities-cpu-model.c: In function 'gvir_config_capabilities_cpu_model_init':
../../libvirt-gconfig/libvirt-gconfig-capabilities-cpu-model.c:44:13: error: G_ADD_PRIVATE [-Werror]
44 | model->priv = GVIR_CONFIG_CAPABILITIES_CPU_MODEL_GET_PRIVATE(model);
| ^~~~~~~~~~~~~~~
Caused by G_TYPE_INSTANCE_GET_PRIVATE being deprecated.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gobject: remove use of G_PARAM_PRIVATE
This enum field is a deprecated synonym for G_PARAM_STATIC_NAME
which is already set by G_PARAM_STATIC_STRINGS.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-05-27 Fabiano Fidêncio <fidencio@redhat.com>
gtk-doc.make: Remove the file
Now that we're using gtkdocisze as part of autogen.sh, there's no reason
to keep our own gtk-doc.make file.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
autogen.sh: Simplify autogen.sh
Let's use an autogen.sh based on libosinfo's one, which is cleaner and
matches the current GNOME guidelines.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
docs: explicitly link against libvirt-g{config,lib,object}
Let's explicitly link against the built libvirt-gconfig, libvirt-glib,
and libvirt-gobject libtool files for introspecting the gobjects.
In case it's *not* done we can run into some issues when where we try to
link against installed library, causing failures related to undefined
reference of the new symbols.
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2019-05-23 Fabiano Fidêncio <fidencio@redhat.com>
event-test: Change sha-bang line to use python3
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
event-test: Handle exceptions in a py3 compatible way
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
event-test: Use print() in a py3 compatible way
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
event-test: Ensure the right versions of LibvirtGLib and Gtk get loaded
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
event-test: Don't use ";" in the end of lines
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
event-test: LibvirtGLib.init() takes (at maximum) 1 argment
The previous behaviour with pygobject required 2 arguments to be passed
to LibvirtGLib.init().
As it's been changed, whenever we try to run event-test we'd get:
```
Using uri:qemu:///system
Traceback (most recent call last):
File "event-test.py", line 62, in <module>
main()
File "event-test.py", line 51, in main
LibvirtGLib.init(0, "")
TypeError: LibvirtGLib.init() takes exactly 1 argument (2 given)
```
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-05-20 Fabiano Fidêncio <fidencio@redhat.com>
conn-test: Change sha-bang line to use python3
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
conn-test: Handle exceptions in a py3 compatible way
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
conn-test: Use print() in a py3 compatible way
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
conn-test: Ensure the right versions of LibvirtGObject and Gtk get loaded
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
conn-test: Don't use ";" in the end of lines
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
config-demo: Change sha-bang line to use python3
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
config-demo: Use octal when setting mode
Basically, just change 0744 to 0o744 in order to be compatible with
python3.
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
config-demo: Use print() in a py3 compatible way
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
config-demo: Ensure the right LibvirtGConfig version gets loaded
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
config-demo: Don't use ";" in the end of lines
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gobject: Wrap virConnectGetDomainCapabilities()
In order to do so, 3 new APIs have been added:
- gvir_connection_get_domain_capabilities();
- gvir_connection_get_domain_capabilities_async();
- gvir_connection_get_domain_capabilities_finish();
The returned object is a GVirConfigDomainCapabilities, from which
consumers will be able to access a few other objects representing the
XML returned by virConnectGetDomainCapabilities().
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tests: Add basic test for domain capabilities
This basic test only ensures that we can properly parse:
<domainCapabilities>
<os>
<enum name="firmeware">
<value>bios</value>
<value>efi</value>
</enum>
</os>
</domainCapabilities>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add _domain_capabilities_os_get_firmwares()
Add a way to access the <enum name="firmware"/> element's conent from
<os/>.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add _domain_capabilities_get_os()
Add a way to access the object which represents the <os/> element from
the <domainCapabilities/>.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add GVirConfigDomainCapabilitiesOs
GVirConfigDomainCapabilitiesOs object has been introduced in order to
represent the <os/> element under <domainCapabilities/>.
For now it's not used anywhere, but it's addition allows us to start
building the needed machinery for:
- Returning a representation os <os/> element;
- Having the most basic machinery to start adding functions to return
any child element we may need to query from <os/> element;
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add GVirConfigDomainCapabilities
GVirConfigDomainCapabilities object has been introduced in order to
represent the output of virConnectGetDomainCapabilities().
For now it's not used anywhere, but its addition allows us to start
building the needed machinery for:
- Creating a wrapper around virConnectGetDomainCapabilities();
- Creating new objects that will be used to return each of the elements
present in the output of virConnectGetDomainCapabilities(),
accordingly to the consumers of this library's need;
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gobject: Use the proper return type in _connection_get_capabilities_finish()
Instead of returning FALSE, return NULL.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
gconfig: Add _domain_os_set_firmware()
Add a way to set <os firmware="bios|efi"/> to the domain XML.
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
2019-02-20 Daniel P. Berrangé <berrange@redhat.com>
po: refresh translations from zanata
po: minimize uk ur vi wba yo zh_CN zh_HK zh_TW zu
po: minimize sq sr@latin sr sv ta te tg th tr tw
po: minimize or pa pl pt_BR pt ro ru si sk sl
po: minimize mn mr ms nb nds ne nl nn nso
po: minimize kw_GB kw@kkcor kw kw@uccor ky lt lv mai mk ml
po: minimize id ilo is it ja ka kk km kn ko
po: minimize fr gl gu he hi hr hu ia
po: minimize de el en_GB eo es et eu fa fi
po: minimize bn bo br brx bs ca cs cy da de_CH
po: minimize af am anp ar as ast bal be bg bn_IN
po: minimize & canonicalize translations stored in git
Similar to the libvirt-glib.pot, .po files contain line numbers and file
names identifying where in the source a translatable string comes from.
The source locations in the .po files are thrown away and replaced with
content from the libvirt-glib.pot whenever msgmerge is run, so this is not
precious information that needs to be stored in git.
When msgmerge processes a .po file, it will add in any msgids from the
libvirt-glib.pot that were not already present. Thus, if a particular msgid
currently has no translation, it can be considered redundant and again
does not need storing in git.
When msgmerge processes a .po file and can't find an exact existing
translation match, it will try todo fuzzy matching instead, marking such
entries with a "# fuzzy" comment to alert the translator to take a
look and either discard, edit or accept the match. Looking at the
existing fuzzy matches in .po files shows that the quality is awful,
with many having a completely different set of printf format specifiers
between the msgid and fuzzy msgstr entry. Fortunately when msgfmt
generates the .gmo, the fuzzy entries are all ignored anyway. The fuzzy
entries could be useful to translators if they were working on the .po
files directly from git, but Libvirt-Glib outsourced translation to the
Fedora Zanata system, so keeping fuzzy matches in git is not much help.
Finally, by default msgids are sorted based on source location. Thus, if
a bit of code with translatable text is moved from one file to another,
it may shift around in the .po file, despite the msgid not itself changing.
If the msgids were sorted alphabetically, the .po files would have
stable ordering when code is refactored.
This patch takes advantage of the above observations to canonicalize
and minimize the content stored for .po files in git. Instead of storing
the real .po files, we now store .mini.po files.
The .mini.po files are the same file format as .po files, but have no
source location comments, are sorted alphabetically, and all fuzzy
msgstrs and msgids with no translation are discarded. This cuts the size
of content in the po directory.
Users working from a libvirt-glib git checkout who need the full .po files
can run "make update-po", which merges the libvirt-glib.pot and .mini.po
file to create a .po file containing all the content previously stored
in git.
Conversely if a full .po file has been modified, for example, by
downloading new content from Zanata, the .mini.po files can be updated
by running "make update-mini-po". The resulting diffs of the .mini.po
file will clearly show the changed translations without any of the noise
that previously obscured content. Being able to see content changes
clearly actually identified a bug in the zanata python client where it
was adding bogus "fuzzy" annotations to many messages:
https://bugzilla.redhat.com/show_bug.cgi?id=1564497
Users working from libvirt-glib releases should not see any difference in
behaviour, since the tarballs only contain the full .po files, not the
.mini.po files.
As an added benefit, generating tarballs with "make dist", will no
longer cause creation of dirty files in git, since it won't touch the
.mini.po files, only the .po files which are no longer kept in git.
The languages are minimized in the following commit since it is a
large mechanical process.
po: add rules for integration with zanata
Add rules to handle pushing libvirt-glib.pot to zanata, and refreshing .po
files with new content from zanata.
po: remove language list from zanata configuration
The <locales> element in zanata.xml is no longer relevant as this info
is recorded server side.
po: provide custom make rules for po file management
Historically we have relied on intltool to install a standard
po/Makefile.in.in which has very limited scope for customization.
intltool is deprecated in favour of standard gettextize tools,
but these share the same disadvantages.
Writing make rules for po file management is no more difficult
than any other rules libvirt-glib has, so stop using intltool
and don't use gettextize ether.
2019-02-14 Christophe Fergeau <cfergeau@redhat.com>
events: Mark 'eventlock' as static
It's not used outside of the libvirt-glib-event.c file, so there is no
good reason for not having it static. As it was not listed in
libvirt-glib.sym, this will make no change to the publicly exported
symbols (ie this is not an ABI change).
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
object: Fix gvir_connection_create_storage_pool() leak
We need to free the string returned by gvir_config_object_to_xml() after
using it.
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
config: Fix gvir_config_xml_node_to_string() leak
If xmlNodeDump() fails, we would be leaking the xmlBuffer we created.
This commit ensures we don't return early before this buffer is freed.
Reviewed-by: Fabiano Fidêncio <fidencio@redhat.com>
2019-02-12 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Add gvir_config_storage_vol_target_set_features
Only one feature is supported at the moment, 'lazy refcount'
Reviewed-by: Cole Robinson <crobinso@redhat.com>
2018-10-12 Daniel P. Berrangé <berrange@redhat.com>
Bump version to 2.0.0 for new release
Re-add script for doing release build testing
Refresh translations from zanata
2018-10-12 Fabiano Fidêncio <fidencio@redhat.com>
tests: Add tests for _domain_os_{set, get}_machine()
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
gconfig: add _domain_os_get_machine()
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
gconfig-domain-sound: Add ich9 sound device
Reviewed-by: Cole Robinson <crobinso@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2018-10-03 Fabiano Fidêncio <fidencio@redhat.com>
domain: Introduce gvir_config_domain_set_custom_xml_ns_children()
gvir_config_domain_set_custom_xml_ns_children() basically has the same
functionallity as gvir_config_domain_set_custom_xml() but also sets the
namespace to the nodes' children.
object: Also add the ns to the node's children
With the current code, we can only create a custom XML that looks like:
<metadata>
<boxes:gnome-boxes xmlns:boxes="https://wiki.gnome.org/Apps/Boxes">
<os-state>installed</os-state>
<media-id>http://centos.org/centos/7.0:0</media-id>
<media>/home/fidencio/Downloads/CentOS-7-x86_64-DVD-1804.iso</media>
</boxes:gnome-boxes>
</metadata>
Although it works well for some use cases, there are use cases where
we'd like to have something a bit more complex libosinfo or nova
examples:
<metadata>
<libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
<libosinfo:os id="http://fedoraproject.org/fedora/17"/>
</libosinfo:libosinfo>
<nova:instance xmlns:nova="http://openstack.org/nova/instance/1">
<nova:flavor name="m1.small">
<nova:memory>512</nova:memory>
<nova:disk>10</nova:disk>
</nova:flavor>
</nova:instance>
</metadata>
And for the latter case we'd have to go through the node's children and
also set the namespace for each children.
gconfig, gobject: Use G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE
Commit 7190c5024d introduced the usage of new GObject define macros with
private. However as the conversion hasn't been done for abstract types
(G_DEFINE_ABSTRACT_TYPE) and the addition of the private classes for the
abstract types has been removed as part of the commit, crashes can be
seen in Apps consuming libvirt-glib, as this one from GNOME Boxes:
Thread 1 "gnome-boxes" received signal SIGSEGV, Segmentation fault.
0x00007ffff7ef2b35 in g_type_check_instance_is_fundamentally_a () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
(gdb) bt
#0 0x00007ffff7ef2b35 in g_type_check_instance_is_fundamentally_a () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#1 0x00007ffff7ed2e75 in g_object_unref () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#2 0x00007ffff6ef094e in gvir_domain_device_set_property (object=0x555556680950, prop_id=2, value=0x7fffffffcbe0,
pspec=0x555556772540) at libvirt-gobject-domain-device.c:89
#3 0x00007ffff7ed3b19 in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#4 0x00007ffff7ed5624 in g_object_new_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5 0x00007ffff7ed5959 in g_object_new () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00005555555d8257 in boxes_libvirt_machine_get_domain_disk (self=0x5555560e6790, error=0x55555615a630)
at /run/build/gnome-boxes/src/libvirt-machine.vala:547
#7 0x00005555555d0e7e in boxes_libvirt_machine_update_io_stat_co (_data_=0x55555615a320)
at /run/build/gnome-boxes/src/libvirt-machine.vala:280
#8 0x00005555555d09b2 in boxes_libvirt_machine_update_io_stat (self=0x5555560e6790, info=0x555555f25990, stat=0x555556736a90,
_callback_=0x5555555d2992 <boxes_libvirt_machine_update_stats_ready>, _user_data_=0x555556736a50)
at /run/build/gnome-boxes/src/libvirt-machine.vala:5
#9 0x00005555555d3120 in boxes_libvirt_machine_update_stats_co (_data_=0x555556736a50)
at /run/build/gnome-boxes/src/libvirt-machine.vala:332
#10 0x00005555555d29dd in boxes_libvirt_machine_update_stats_ready (source_object=0x5555567bb840, _res_=0x55555677ae00,
_user_data_=0x555556736a50) at /run/build/gnome-boxes/src/libvirt-machine.vala:328
#11 0x00007ffff72adc89 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#12 0x00007ffff72adcc9 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#13 0x00007ffff7dec948 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#14 0x00007ffff7decd38 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#15 0x00007ffff7decdcc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#16 0x00007ffff72c2dbd in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#17 0x00005555556004b6 in _vala_main (args=0x7fffffffd4f8, args_length1=1) at /run/build/gnome-boxes/src/main.vala:84
#18 0x0000555555600517 in main (argc=1, argv=0x7fffffffd4f8) at /run/build/gnome-boxes/src/main.vala:68
In order to solve the issue, let's just replace G_DEFINE_ABSTRACT_TYPE
by G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE.
2018-08-16 Michal Privoznik <mprivozn@redhat.com>
configure: Drop GLIB2_TEST_REQUIRED
Introduced in eb1f97a4b49a6e it is not needed anymore. The
minimal required version of glib is now the same as the one
required for tests.
This practically reverts the referenced commit.
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Use new GObject define macros with private
G_ADD_PRIVATE was added in 2.38 and older functions are getting deprecated:
https://gitlab.gnome.org/GNOME/glib/merge_requests/7/commits
This also means, that the minimal required glib version is
increased to 2.38.
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
2018-04-24 Daniel P. Berrangé <berrange@redhat.com>
git: add config file telling git-publish how to send patches
The "git-publish" tool is a useful git extension for sending patch
series for code review. It automatically creates versioned tags
each time code on a branch is sent, so that there is a record of
each version. It also remembers the cover letter so it does not
need re-entering each time the series is reposted.
With this config file present it is now sufficient[1] to run
$ git publish
to send all patches in a branch to the list for review, with the
correct subject prefix added for this non-core libvirt module.
[1] Assuming your $HOME/.gitconfig has an SMTP server listed
at least e.g.
[sendemail]
smtpserver = smtp.example.com
2018-02-20 Daniel P. Berrangé <berrange@redhat.com>
m4: disable gcc8 -Wcast-function-type warnings from -Wextra
The -Wextra flag bundle gained a new warning -Wcast-function-type.
This complains if you cast between two function prototypes where
the number of parameters or their data types are not compatible.
Unfortunately we need such "bad" function casts for our event
callbacks. It is possible to silence the warning by first casting
to the generic "void (*)(void)" function prototype, but that is
rather ugly to add throughout libvirt code.
2018-01-17 Daniel P. Berrange <berrange@redhat.com>
remove bogus casts of arg to g_object_ref
Latest version of glib uses typeof() magic to cast the
return value of g_object_ref to match its argument,
instead of returning a 'void *'. A few places in the
code were casting the arg to G_OBJECT() which was then
incompatible with the variable we assigned the result
to. The parameter casts were always redundant so just
remove them.
2017-12-04 Daniel P. Berrange <berrange@redhat.com>
Refresh po files from zanata
2017-10-30 Marek Kasik <mkasik@redhat.com>
spec: Enable unit tests during build
Enable unit tests so that we can catch some problems soon enough
before the package gets to the users.
Show test suite log if a test fail.
2017-09-21 Andrea Bolognani <abologna@redhat.com>
scripts: Fix sha-bang lines
This is particularly useful on operating systems that don't ship
Perl or Python as part of the base system (eg. FreeBSD) while still
working just as well as it did before on Linux.
While at it, make it explicit that our scripts are only going to
work with Python 2, add a couple of missing sha-bang lines and
tweak a couple more that just didn't look very nice.
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
tests: Don't rely on non-portable paths
The test-events program sets up a watch on /bin/true; however,
that path is not portable: FreeBSD uses /usr/bin/true for example.
Remove the portability issue by using /dev/null instead.
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
configure: Look for Perl interpreter path
The $(PERL) variable is used in several places, but configure is
not actually looking for the Perl interpreter path, so it will
always end up being empty.
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
configure: Bump required libvirt version to 1.2.5
That's the version that introduced VIR_DOMAIN_TIME_SYNC, which we
use in the library.
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
maint: Drop autobuild.sh
The Test-AutoBuild project, that this script is supposed to be used
with, hasn't seen any activity in ~6 years; libvirt's own CI, which
also performs periodic builds of libvirt-glib, is running on Jenkins
with a completely independent setup that doesn't use the script at
all.
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
2017-08-14 Daniel P. Berrange <berrange@redhat.com>
Set LC_CTYPE when running glib-mkenums
Revert "Don't set LC_ALL=C during build as that breaks python apps"
This reverts commit dae25f53293919bb2c22419c236bef5aa628e9be.
2017-07-25 Daniel P. Berrange <berrange@redhat.com>
Don't set LC_ALL=C during build as that breaks python apps
Setting LC_ALL=C breaks python apps doing I/O on UTF-8 source
files. In particular this broke glib-mkenums
GEN libvirt-gconfig-enum-types.h
Traceback (most recent call last):
File "/usr/bin/glib-mkenums", line 669, in <module>
process_file(fname)
File "/usr/bin/glib-mkenums", line 406, in process_file
line = curfile.readline()
File "/usr/lib64/python3.6/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 849: ordinal not in range(128)
2017-05-30 Daniel P. Berrange <berrange@redhat.com>
Add missing dep on intltool
Libvirt-glib requires intltool at build time. Previously it
was pulled in transitively via another RPM dependancy. As of
Fedora 26, this no longer happens, exposing the missing RPM
dep.
2017-03-25 Guido Günther <agx@sigxcpu.org>
examples: make detail strings match event details
2016-11-04 Daniel P. Berrange <berrange@redhat.com>
Post release version bump to 1.1.0
NB, this will change to 2.0.0 if no new release is made
during 2016
Update NEWS for 1.0.0 release
bump release to 1.0.0 to match libvirt numbering scheme
Switch to follow the libvirt release numbering scheme
- Major is incremented at start of each year
- Minor is incremented each release during a year
- Micro is reserved for stable branch releases (if any)
2016-11-04 Christophe Fergeau <cfergeau@redhat.com>
tests: Don't leak xml data in test-gconfig-device-unknown
2016-11-04 Zeeshan Ali <zeenix@gmail.com>
gconfig,tests: Add test case for unknown devices
2016-11-03 Zeeshan Ali <zeenix@gmail.com>
gconfig,tests: Separate XML loading function
We'll need to load XML from file in another function, that will be added
in a following patch.
gconfig: Create objects for all domain device nodes
Currently we can and do get into serious trouble with this kind of code:
devices = gvir_config_domain_get_devices(domain);
gvir_config_domain_set_devices(domain, domain);
since the first call above won't return a complete list of objects present
in the domain but only the ones we have specific classes for and the
second call above overwrites all device nodes under the domain. This
lately made Boxes break against the latest libvirt, where a new device
node was made compulsory[1].
Although we should add support for all know domain devices ASAP, new
devices will be added in future and this can happen again. So let's first
ensure that gvir_config_domain_get_devices() always returns all devices
under the domain. All unknown/unimplemented devices will now be returned
as the very generic DomainDevice objects. Once we add support for a
particular device, there will be no API/ABI breakage since the new class
will inherit from DomainDevice class.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1388091
2016-11-01 Zeeshan Ali <zeenix@gmail.com>
gconfig: DomainDevice now instantiable
We'll need to instatiate DomainDevice baseclass itself for unknown (think
new devices added to libvirt XML) devices in a following patch. This
change makes that possible.
This doesn't break any API or ABI to the best of my knowledge and this
assumption was confirmed by Emmanuele Bassi and Tim-Philipp Muller.
gconfig: Allow schema to be NULL
Validation (if attempted) should just fail in this case instead of
crashing.
2016-08-02 Daniel P. Berrange <berrange@redhat.com>
Delete the manually written python binding
The python binding only supports python2, only supports
1 single API in libvirt-glib and has not even been enabled
in RPM builds since Fedora 15. Any distro these days should
have gobject introspection and pygobject available, so
there's no compelling reason to continue to have the python
binding exist.
2016-07-28 Daniel P. Berrange <berrange@redhat.com>
Remove accidental debug code which changed version
Fix check for libvirt optional functions
The checks for virDomainOpenGraphicsFD and
virNetworkGetDHCPLeases in configure are simply trying
to compile and link a test program. This was assuming
that libvirt was installed in /usr/lib & /usr/include,
which is not always the case. Using a pkg-config version
check avoids needing to compile and thus avoids the
bad assumptions about install locations.
Avoid unused variable in DHCP lease finalize method
If the network DHCP lease support is not detected, the build
will generate a warning / error:
libvirt-gobject-network-dhcp-lease.c: In function 'gvir_network_dhcp_lease_finalize':
libvirt-gobject-network-dhcp-lease.c:99:27: error: unused variable 'lease' [-Werror=unused-variable]
GVirNetworkDHCPLease *lease = GVIR_NETWORK_DHCP_LEASE(object);
^~~~~
cc1: all warnings being treated as errors
2016-07-27 Guido Günther <agx@sigxcpu.org>
docs: Document gvir_connection_get_{storage_pools,networks,domains}
In contrast to libvirt itself all get_* methods need to prefetch the
corresponding information first so document this.
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
2016-07-25 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
tests: Add test for GVirConfigDomainHostdevPci API
2016-07-25 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Add GVirConfigDomainAddressPci getters
They will be useful to do more checks in the GVirDomainDeviceHostdev
unit test.
2016-07-25 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Add GVirConfigDomainHostdevPci
Add API to read and write PCI hostdev nodes.
2016-07-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Add GVirConfigDomainHostdev
Add API to read and write domain/devices/hostdev nodes. This patch only
adds the baseclass and hence is not useful on it's own. A more specific
subclass to represent PCI devices will be added in a following patch.
2016-07-21 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Add gvir_config_object_has_child
2016-07-21 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Add gvir_config_domain_video_get_model()
Add a getter for model of domain video device.
2016-02-26 Marc-André Lureau <marcandre.lureau@gmail.com>
config: add accel3d setter
Learn to set the accel3d attribute on video model.
config: add virtio video model
config: add spice gl child
Learn to set "gl" on spice (to have -spice gl=on on qemu)
tests: fix potential crash
The idle source is not always removed and may crash next tests
2016-02-14 Marc-André Lureau <marcandre.lureau@gmail.com>
build-sys: fix gir introspection warnings
Enable GIR warnings and fix them, since they are all useful.
2015-12-26 Michal Privoznik <mprivozn@redhat.com>
libvirt-glib-1.0.pc.in: Correctly mark variable
In the pkg-config file for libvirt-glib we have a typo:
Libs.private: @LIBVIRT_LIBS @GLIB2_LIBS@
Noticed the missing '@' after LIBVIRT_LIBS? Well, I just did.
2015-12-16 Daniel P. Berrange <berrange@redhat.com>
Post release version bump
Update NEWS for 0.2.3 release
Refresh translations from zanata
2015-12-07 Michal Privoznik <mprivozn@redhat.com>
Drop unused finalize function
After 1225a160ac3b4 where I'm dropping some unused variables, the
functions I was touching became sort of redundant too.
Specifically, gvir_domain_disk_finalize() and
gvir_domain_interface_finalize().
2015-12-05 Michal Privoznik <mprivozn@redhat.com>
gobject: Drop some unused variables
After abe983ddf8a569 there are some variables, that are unused:
CC libvirt_gobject_1_0_la-libvirt-gobject-domain-disk.lo
CC libvirt_gobject_1_0_la-libvirt-gobject-domain-interface.lo
CC libvirt_gobject_1_0_la-libvirt-gobject-domain.lo
CC libvirt_gobject_1_0_la-libvirt-gobject-interface.lo
../../libvirt-gobject/libvirt-gobject-domain-interface.c: In function 'gvir_domain_interface_finalize':
../../libvirt-gobject/libvirt-gobject-domain-interface.c:54:26: error: unused variable 'self' [-Werror=unused-variable]
GVirDomainInterface *self = GVIR_DOMAIN_INTERFACE(object);
^
cc1: all warnings being treated as errors
Makefile:724: recipe for target 'libvirt_gobject_1_0_la-libvirt-gobject-domain-interface.lo' failed
make[3]: *** [libvirt_gobject_1_0_la-libvirt-gobject-domain-interface.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
../../libvirt-gobject/libvirt-gobject-domain-disk.c: In function 'gvir_domain_disk_finalize':
../../libvirt-gobject/libvirt-gobject-domain-disk.c:54:21: error: unused variable 'self' [-Werror=unused-variable]
GVirDomainDisk *self = GVIR_DOMAIN_DISK(object);
^
cc1: all warnings being treated as errors
Makefile:717: recipe for target 'libvirt_gobject_1_0_la-libvirt-gobject-domain-disk.lo' failed
2015-12-04 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject,gconfig: Drop redundant debug logging
The g_debug messages in libvirt-gobject creation/destruction were to aid
troubleshooting of object reference leaks. GObject has built-in systemtap
probes that allow the same to be achieved in a more flexible manner, so
the g_debug calls can be removed
2015-11-26 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: Port to GTask API
Drop usage of deprecated GSimpleAsyncResult API.
2015-11-23 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject,gconfig: Drop redundant glib compatibility code
We already require and use glib >= 2.36 so there is no reason to keep
around code to ensure compatibility with glib older than that.
gobject: Add wrapper virDomainSetTime()
2015-09-23 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: Correct docs for gvir_storage_pool_get_info()
The returned GVirStoragePoolInfo pointer is not a GObject so it must not
be unrefed using g_object_unref(). Since gvir_storage_pool_info_free()
is private function, callers must either use g_slice_free() or
g_boxed_free().
2015-07-24 Daniel P. Berrange <berrange@redhat.com>
configure.ac: update min required versions
Based on the distro target policy we have the following
min versions in various distros
libvirt glib2 gobject-introspection
RHEL 7.0: 1.1.1 2.36.3 1.36.0
Fedora 21: 1.2.9 2.42.1 1.42.0
Ubuntu 14.10: 1.2.8 2.42.0 1.41.0
Ubuntu LTS 14.04: 1.2.2 2.40.0 1.40.0
Suse 12.0: 1.2.5 2.38.2 1.38.0
OpenSUSE 13.1: 1.1.2 2.38.2 1.38.0
Debian 8: 1.2.9 2.42.0 1.42.0
Which means we can reasonably depend on
libvirt >= 1.1.1
glib2 >= 2.36.0
gobject-introspection >= 1.36.0
NB, choosen 2.36.0 rather than 2.36.3 because they are
API compatible, the micro digit just indicates a bug
fix release.
README: formally document intended platform support targets
Give users an indication of what distro platforms the project
intends to be buildable on. This policy will be used to decide
when it is appropriate to increase the minimum required versions
of external dependancies.
As an example, as of July 1st 2015, this policy would aim to pick the
min versions based on what's available across the following sample
distros:
- RHEL: 7.0, 7.1
- Fedora: 21, 22
- Ubuntu LTS: 14.04 (Trusty)
- Ubuntu: 14.10 (Utopic), 15.04 (Vivid)
- Suse: 12.0
- OpenSUSE: 13.1, 13.2
- Debian: 8.0 (Jessie)
2015-07-22 Christophe Fergeau <cfergeau@redhat.com>
examples: Don't leak mainloop in conn-test.c
The program exits right after this, so it's no big deal, but this gives
us a clean valgrind --leak-check=full output.
gconfig: Use GVirConfigObject helpers for <video> XML
GVirConfigDomainVideo is using raw libxml calls to set the 'heads' and
'vram' XML attributes rather than the helpers provided by
GVirConfigObject. This commit changes that, making the code a bit
simpler.
test-gconfig: Test video heads/vram setting
test-gconfig: Fix various leaks
Running test-gconfig under valgrind reports a few leaks that this commit
fixes.
gconfig: Fix leak in gvir_config_domain_filesys_set_ram_usage
The object returned by gvir_config_object_replace_child() must be
unref'ed when no longer needed.
2015-07-21 Daniel P. Berrange <berrange@redhat.com>
Post release version bump to 0.2.3
Update NEWS for 0.2.2 release
Make use of DHCP API conditionally compiled
Previously the use of virDomainOpenGraphicsFD API from libvirt
1.2.8 was made to be conditionally compiled. Given this past
practice, make use of the virNetworkGetDHCPLeases API
conditional too, rather than requiring newer libvirt.
2015-07-17 T A Mahadevan <ta.mahadevan@gmail.com>
Add ram and vgamem attributes for graphics model.
buildsys: Add missing libraries to LDFLAGS
Without these changes 'make check' would not
run on Ubuntu because of a link failure as
the tests are directly using glib/libvirt
symbols.
Add LibvirtGConfigDomainChardevSourceUnix
This is needed to be able to add UNIX channels
2015-07-13 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Require libvirt-glib >= 1.2.6
With bindings added to API that came in 1.2.6:
81c5969 - gobject: Add wrapper for virNetworkGetDHCPLeases
deed153 - gobject: Add wrapper for virNetworkDHCPLease
we better make our requirement explicit.
The alternative would be to make use of #ifdef to only use newer symbols
from libvirt if installed version is >= 1.2.6 but that would require at
least 12 #ifdef in different places and hence very ugly IMO. Keeping in
mind that 1.2.6 is more than an year old now and it doesn't make much
sense to wanting to upgrade to latest libvirt-glib but not wanting to
upgrade to even an year old libvirt, this is very unlikely to cause any
real issues.
2015-07-08 Cédric Bosdonnat <cbosdonnat@suse.com>
Dsitribute the whole tests/xml folder
Don't overwrite filesystem type when writing format
When setting filesystem driver format first and type, only the type
remained and vice-versa.
2015-07-07 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: Add wrapper for virNetworkGetDHCPLeases
gobject: Add wrapper for virNetworkDHCPLease
gobject: Add API to query connection networks
Add API to query networks from a connection.
gobject: Add API to query connection interfaces
Add API to query network interfaces from a connection.
gobject: Port GVirConnection to GTask
GSimpleAsyncResult has been deprecated in favour of GTask and with
latest glib headers, we get tons of warnings about use of deprecated
API. This patch ports the GVirConnection class to GTask.
gobject: Plug 2 virConnect leaks
A virConnect reference is leaked in error cases. This patch moves the
unref after the label we jump to on errors, to avoid this leak.
gobject: Simplify gvir_connection_list*() implementations
Make use of virConnectListAll* functions to avoid making 4 calls and
hence avoid race conditions and complicated code.
2015-07-03 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2015-06-27 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: Add gvir_interface_get_mac()
Add a wrapper for virInterfaceGetMACString().
2015-06-17 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Fix small leak in test-domain-create
The object returned by gvir_config_domain_disk_get_driver() must be
unref'ed when no longer used.
2015-06-16 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.2.1 release
Refresh translations from zanata
2015-06-16 Cédric Bosdonnat <cbosdonnat@suse.com>
domain config: add API to set the filesystem image format
Add the gvir_config_domain_filesys_set_driver_format function to allow
setting nbd driver type + image format for containers filesystems.
Add loop, nbd and ploop filesystem types
gvir_config_domain_filesys_set_driver_type: replace the driver node
Replace the driver node in case the user calls the function more than
one time.
test-gconfig: add filesystem test
2015-06-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
storage-pool: API to get/set autostart flag
Add binding for virStoragePoolGetAutostart & virStoragePoolSetAutostart.
2015-06-01 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Don't try to return value from gvir_config_domain_set_memory
gvir_config_domain_set_memory() is a void function, so using
g_return_val_if_fail() is not correct. This causes a warning/compilation
failure on CentOS CI framework:
https://ci.centos.org/view/libvirt-project/job/libvirt-glib-build/systems=libvirt-fedora-20/144/console
gconfig: Add precondition checks to some public entry points
It's currently possible to trigger a crash by passing eg NULL to these
functions. Better to return a prominent warning to the caller without
crashing.
2015-05-18 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version to 0.2.1
2015-04-13 Richa Sehgal <richasehgal2908@gmail.com>
gconfig: Add support for 'compat' storage volume node
This change adds support for setting of compat XML node in
libvirt-gconfig storage volumes target.
2015-03-24 Christophe Fergeau <cfergeau@redhat.com>
build-sys: Fix libtoolize detection in autogen.sh
autogen.sh is currently checking for the libtool binary, but
it's libtoolize which is needed by autoreconf, not libtool.
These binaries are packaged separately on Debian/Ubuntu so this can
cause actual issues on some systems.
Bug reported by Frederic Peters
2015-02-18 Daniel P. Berrange <berrange@redhat.com>
Switch over to using zanata for translation
Remove obsolete transifex config and add zanata config,
re-generating all po files
2014-12-15 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.2.0 release
Fix build on win32 due to missing sys/socket.h
2014-11-27 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_domain_open_graphics_fd()
Add binding for virDomainOpenGraphicsFD. If virDomainOpenGraphicsFD is
not available, it means we are dealing with older libvirt so we create
the socket pair ourselves if that is the case.
2014-11-13 Martin Kletzander <mkletzan@redhat.com>
Revert back deleted glib-specific warning options
Commit f525ba7796a2fd35bf55e88fb94459b2277fcd67 copied warning macros
from gnulib without keeping glib-specific settings. This build-breaker
brings back those needed ones except unused-parameter, which is no
longer needed.
Properly mark unused parameters
2014-11-13 Michal Privoznik <mprivozn@redhat.com>
m4: sync macros with libvirt
The macros under the m4 directory are outdated a bit. When trying
to compile with newer gcc I see some errors:
make[2]: Entering directory '/home/zippy/work/libvirt/libvirt-glib.git/libvirt-glib'
CC libvirt_glib_1_0_la-libvirt-glib-error.lo
gcc: warning: switch '-Wmudflap' is no longer supported
2014-09-29 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Add GVIR_CONFIG_DOMAIN_INPUT_DEVICE_KEYBOARD
Add missing enum type for keyboard input device.
2014-08-20 Daniel P. Berrange <berrange@redhat.com>
Post-release version bump to 0.2.0
Update NEWS for 0.1.9 release
Refresh translations from transifex
2014-08-20 Timm Bäder <mail@baedert.org>
GVirDomainSnapshot: Add async version of _delete
GVirDomain: Add async version of _create_snapshot
GVirDomainSnapshot: Add async version of _revert_to
GVirDomain: Fix some doc comments of the snapshot API
Fixes the following warnings from g-ir-scanner and some cosmetic issues:
libvirt-gobject-domain.c:1532: Warning: LibvirtGObject: unknown
annotation: transfer-none
libvirt-gobject-domain.c:1650: Error: LibvirtGObject: identifier not
found on the first line:
*
^
GVirDomain: Add _get_has_current_snapshot
... which uses virDomainHasCurrentSnapshot to determine if the given
domain has a current snapshot or not.
GVirDomainSnapshot: Add _set_config
... which is basically analogous to gvir_domain_set_config
GVirDomainSnapshot: Add _revert_to
Add a way to revert a domain to one of its snapshots.
GVirDomainSnapshot: Add _get_is_current
Add a way to determine if the given GVirDomainSnapshot is the current
snapshot of its GVirDomain.
2014-08-04 Timm Bäder <mail@baedert.org>
GVirDomain: Add async version of _fetch_snapshots
libvirt-gobject-domain: Add _get_snapshots
... which returns a GList of GVirDomainSnapshots, i.e. without any tree
structure or other relationship between the snapshots.
libvirt-gobject-domain: Add _fetch_snapshots
This function can be used to fetch the snapshots of a domain (according
to the given GVirDomainSnapshotListFlags) and save them in a
domain-internal GHashTable. A function to access them from outside will
be added in a later patch.
2014-08-04 Christophe Fergeau <cfergeau@redhat.com>
spec: Substitute minimum glib2 version from configure.ac
This way we don't have to keep track of the minimum glib2 version we
need in 2 separate places.
gobject: Fix GEnum generation through glib-mkenums
We were only passing libvirt-gobject-domain.h and
libvirt-gobject-connection.h through glib-mkenums, which causes it to
only generate GEnum information for enums found in these headers.
We want to do that for all enums defined in installed headers, so
passing all headers listed in libvirt_gobject_1_0_la_HEADERS is more
appropriate.
2014-08-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_config_domain_cpu_set_model()
Add a method to set model of domain CPU.
Add GVirConfigDomainCpuModel class
Add a class to represent 'model' node under domain/cpu.
Add gvir_config_capabilities_cpu_get_model()
Add a method to get the model of the CPU from capabilities.
2014-07-15 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add GVirConfigCapabilitiesCpuModel class
Add a class to represent 'model' node under capabilities/host/cpu.
2014-06-17 Cédric Bosdonnat <cbosdonnat@suse.com>
Add API to get security models from host capabilities
2014-06-04 Michael Catanzaro <mcatanzaro@gnome.org>
build: fix race in vapi/ subdirectory
libvirt-gobject-1.0.vapi depends on libvirt-gconfig-1.0.vapi
2014-06-04 Christophe Fergeau <cfergeau@redhat.com>
spec: Move .vapi files to -devel RPMs
.vapi files are only needed when building vala programs using
libvirt-glib, so they belong to the -devel RPMs, not to the non-devel
RPMs which only hold files needed at runtime.
2014-06-03 Timm Bäder <mail@baedert.org>
GVirDomainSnapshot: Add gvir_domain_snapshot_delete
Remove #if 0's from libvirt-gobject-domain-snapshot
The code seems to be fine.
2014-06-03 Christophe Fergeau <cfergeau@redhat.com>
tests: Fix make distcheck
Some files are missing from EXTRA_DIST, causing make distcheck to fail
when tests are enabled.
tests: Move EXTRA_DIST back into ENABLE_TESTS conditional
When deciding which files to put into the make dist tarball, automake is
clever enough to ignore conditional blocks, and to pick all files which are
needed for all values of the conditional.
Having EXTRA_DIST=xxx at the beginning of tests/Makefile.am causes
warnings from automake when ENABLE_TESTS is true as glib-tap.mk will
unconditionally empty it.
Keeping EXTRA_DIST+=xxx outside of the ENABLE_TESTS conditional would
cause a different warning from automake when ENABLE_TESTS is false as
we'd be appending to a variable which was never set.
Moving EXTRA_DIST+= back into the conditional solves these 2 warnings.
2014-05-16 Marc-André Lureau <marcandre.lureau@gmail.com>
tests: test spiceport chardev
gconfig: add spiceport chardev
2014-05-12 Timm Bäder <mail@baedert.org>
domain-device-private: fix typo in header guard
2014-02-21 Daniel P. Berrange <berrange@redhat.com>
Post release version bump to 0.1.9
Update NEWS for 0.1.8 release
Disable test suite unless glib >= 2.38
The TAP harness for glib only works with version 2.38 or later,
so must be disabled for earlier versions
2014-02-20 Pavel Hrdina <phrdina@redhat.com>
gobject-stream: fix issue found by coverity
The coverity server found issue in gvir_stream_close function that
we ignore return values of g_input_stream_close and
g_output_stream_close, but we also ignore the error message and we
assume that it's closed without error.
Now we will check return values and also propagate the error message
to the upper layers. We should try to close both streams even if
closing the first one will fails. We can propagate only one error
message.
2014-02-14 Daniel P. Berrange <berrange@redhat.com>
Avoid false positive in diagnostic check against tap-driver.sh
Add <config.h> to test cases
Remove doubled 'on on' word in tap-driver.sh
Don't mandate test files to call bindtextdomain
Fix symfile checks in VPATH build
The check-symfile and check-symsorting rules were not
taking $(srcdir) into account when accessing the symfile
paths.
2014-02-04 Christophe Fergeau <cfergeau@redhat.com>
build-sys: Update .gitignore
glib: Add unit test for libvirt/glib mainloop integration
It's currently only testing removal of disabled timer/watches
gconfig: Start adding more formal unit tests
Rather than the ever growing standalone libvirt-gconfig/tests/test-domain-create
program, this commit adds support for glib GTester framework as well as 2
smaller tests cases for GVirConfigDomain and GVirConfigDomainClock.
glib: Don't leak GIOChannel when destroying IO handle
gvir_event_handle_add() creates a GIOChannel in order to watch the fd it
was given for changes.
gvir_event_handle_remove() is freeing all the resources allocated by
gvir_event_handle_add() except for this GIOChannel. This commit adds
the needed g_io_channel_unref() call to gvir_event_handle_remove()
glib: Allow to remove disabled timers and handles
Trying to remove a disabled timer or handle will cause
gvir_{event,timer}_handle_remove() to return an error
rather than removing it.
glib: Don't create glib IO watch for disabled handles
It's possible to create a handle to watch for file events which do not
watch for any file event. Such a handle can be enabled later with
gvir_event_handle_update() by setting some conditions to watch for.
When a handle is disabled after it has been created,
gvir_event_handle_update() makes sure it removes the corresponding
gvir_event_handle::source IO watch if any was set.
gvir_event_handle_add() will always create a gvir_event_handle::source
IO watch even if the handle is not watching for any events.
This commit makes consistent by only creating a watch with g_io_add_watch()
when the caller asked to watch for some events.
gconfig: Fix removal of GVirConfigDomainCpu from domains
A wrong precondition in gvir_config_domain_set_cpu() would reject NULL
GVirConfigDomainCpus instead of accepting them.
gconfig: Fix removal of GVirConfigCapabilitiesCpu topology
Calling gvir_config_capabilities_cpu_set_topology with a NULL topology
would not remove the topology as expected as NULL would be rejected by
this method preconditions.
gconfig: Implement getters for GVirConfigDomainInput
gconfig: Add various clock-related getters
gconfig: Adjust transfer annotation for gvir_config_domain_os_get_boot_devices()
(transfer container) is more correct than (transfer full) for GList of
scalar values, it's not clear whether it's an issue or not, but better be
safe than sorry.
gconfig: Fix gvir_config_domain_os_get_boot_devices() API doc
The elements of the returned list are integer enum values, so they cannot
be unreffed.
gconfig: Fix GVirConfigDomainTimerPit parent class/object
GVirConfigDomainTimerPit is correctly define as inheriting from
GVirConfigDomainTimer in the G_DEFINE_TYPE macro, but it only
embeds GVirConfigObject/GVirConfigObjectClass structs.
This is an ABI break as this changes the size of the
GVirConfigDomainTimerPit/GVirConfigDomainTimerPitClass structs
However, since these structs only have non-public members, users of the
library will not be trying to access fields of the struct past the first
field (which is the one which changed size). This would also be an issue
if anything had subclassed GVirConfigDomainTimerPit, which is unlikely at
this point.
All in all, it's imo more convenient to silently fix this without an soname
bump. I've tested that GNOME Boxes built with an older version of
libvirt-gconfig still generates the correct GVirConfigDomainTimerPit
elements when using a version of libvirt-gconfig with this patch.
2014-01-28 Daniel P. Berrange <berrange@redhat.com>
Fix event loop implementation on win32
Libvirt uses gnulib for making winsock look like POSIX
sockets. This means that in the libvirt event handle
callbacks the application will be given a file descriptor
rather than a winsock HANDLE object. The g_io_channel_unix_new
method will detect that it is an FD and delegate to the
g_io_channel_win32_new_fd method. Unfortunately the glib Win32
event loop impl is not very good at dealing with FD objects,
simulating poll() by doing a read() on the FD :-(
The API docs for g_io_channel_win32_new_fd say
"All reads from the file descriptor should be done by
this internal GLib thread. Your code should call only
g_io_channel_read()."
This isn't going to fly for libvirt, since it has zero
knowledge of glib at all, so is just doing normal read().
Fortunately we can work around this problem by turning
the FD we get from libvirt back into a HANDLE using the
_get_osfhandle() method.
2014-01-21 Christophe Fergeau <cfergeau@redhat.com>
Add GVirConfigDomainTimerHpet
This will be needed in order to solve
https://bugzilla.gnome.org/show_bug.cgi?id=722293
Add gvir_config_domain_timer_[gs]et_present()
Add getters for some GVirConfigDomainGraphics* attributes
Now that there is a gvir_config_object_get_attribute_boolean(), these
are trivial to implement.
Implement gvir_config_object_get_attribute_boolean()
gvir_config_object_set_attribute() converts (TRUE, FALSE) to ("yes", "no"),
but we don't have the corresponding getter. This commit adds this.
Add scripts for validating the libvirt-glib symbol files
Import two test scripts from libvirt code which validate that
all symbols in libvirt-glib symbol files exist in the ELF binary, and also
validate the alphabetical sorting. These are hooked up to run with 'make
check'.
This commit is based on a libosinfo patch from Daniel P. Berrange
Fix typo in symbol name in libvirt-gobject.sym
gvir_connection_restore_domain_from_file_finish was not properly exported
because of a typo in the symbol name.
This commit also removes a newer occurrence of this symbol in the file
(without the typo). This can be done without breaking ABI as we haven't
made a release since this duplicate symbol was added in the symbol file.
Remove gvir_config_domain_cpu_get_features() from sym file
This method was never exported. GVirConfigDomainCpu inherits from
GVirConfigCapabilitiesCpu so gvir_config_capabilities_cpu_get_features()
should be used to get these features (this calls the virtual method
GVirConfigCapabilities::get_features() which GVirConfigDomainCpu
implements).
Alphabetically sort libvirt-glib sym files
This is in preparation to enforcing this sorting during make check.
The script only checks for alphabetical sorting, which leads to unexpected
sorting between classes sharing a common prefix (eg the correct order is:
gvir_config_domain_get_foo;
gvir_config_domain_interface_set_foo;
gvir_config_domain_set_foo;
instead of
gvir_config_domain_get_foo;
gvir_config_domain_set_foo;
gvir_config_domain_interface_set_foo;
if we want to keep methods from the same class grouped in the symbol file.
Add basic test for gvir_config_domain_disk_driver_set_copy_on_read()
Deprecate gvir_config_domain_disk_[gs]et_driver_*
They are replaced by equivalent methods in GVirConfigDomainDiskDriver.
Initially, we had only one or two attributes to set on the 'driver' child
of the 'disk' node. Nowadays, we more than 5 attributes to set on this
node, mapping it as a separate object is more consistent with the rest of
libvirt-gconfig API.
Implement gvir_config_domain_disk_[gs]et_driver()
Add GVirConfigDomainDiskDriver
This class wraps creation of configuration data for the driver part of a
domain disk device. The methods needed for this are currently part of
GVirConfigDomainDisk, but since the disk driver is getting more and more
attributes, it's better to move such configuration to a dedicated class to
avoid a too big API in GVirConfigDomainDisk
config: Fix typo preventing clock removal from a domain
Commit 1c8ce29 added a way to unset a GVirConfigDomainClock set on a
GVirConfigDomain by calling gvir_config_domain_set_clock() with a NULL
argument.
However, a typo in a g_return_if_fail precondition prevents this code from
ever being called: g_return_if_fail(clock != NULL) is used while it should
have been g_return_if_fail(clock == NULL) as in all other preconditions in
1c8ce29.
2014-01-21 Daniel P. Berrange <berrange@redhat.com>
Switch over to using standard gobject introspection macros
Remove hand crafted configure.ac and Makefile.am rules in
favour of the standard macros.
2013-10-31 Ian Main <imain@redhat.com>
Quick fix for config-demo.py
I guess this must have been changed and the demo not updated. Fix the
demo so it uses the right value.
Add filterref and filterref parameter support.
This patch adds support for setting filterref's on interfaces. Also
supported are parameters to the filterref's.
2013-09-27 Christophe Fergeau <cfergeau@redhat.com>
Use latest warnings.m4 from gnulib
The one we were using does not work properly with clang, causing
the build process to try to use -f/-W options that are not
supported by clang.
2013-09-19 Daniel P. Berrange <berrange@redhat.com>
Add intltool as a build req in mingw RPM
2013-08-28 Christophe Fergeau <cfergeau@redhat.com>
Add missing symbols to .sym files
These symbols are in public headers, but were not listed in the
corresponding .sym file, causing them to be unavailable from
the resulting shared library.
I would have preferred not to export gvir_config_object_new_from_xml()
at all, but since the similar gvir_config_object_new() is already exported,
I've chosen to export it as well.
2013-08-19 Daniel P. Berrange <berrange@redhat.com>
Remove unused 'gint i' variable from list helpers
The previous change made the 'gint i' variable unused.
2013-08-15 Daniel P. Berrange <berrange@redhat.com>
Remove dead cleanup code in object fetch_list helpers
The fetch_list helper cleanup code iterates over the
elements in 'lst' array free'ing each one. This is dead
code, however, since the only way to get there is from
codepaths which do not populate 'lst' elements.
This fixes two coverity DEADCODE reports
2013-07-09 Daniel P. Berrange <berrange@redhat.com>
Refresh translations from transifex
Post-release version bump to 0.1.8
Add support for reading/writing UUID attribute in domain config
2013-07-08 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.1.7 release
2013-07-04 Daniel P. Berrange <berrange@redhat.com>
Add missing file from previous commit
The commit 35a310c62a8bf704aceb3a5b3ecce36c11525914 forgot
to add libvirt-gconfig/libvirt-gconfig-domain-chardev-source-private.h
Add API to access device alias names
Add gvir_config_domain_device_get_alias to read the
<alias name="foo"/> XML in each device.
Add APIs to access chardev source information
Enable apps to determine the current source path of a chardev
with a pty based source.
Fix name of gvir_config_domain_chardev_source_pty_set_path
The method gvir_config_domain_chardev_source_pty_set_path was
accidentally called gvir_config_domain_source_pty_set_path.
This naming flaw in turn caused the introspection data to
be incorrectly generated, putting a 'source_pty_set_path'
method on the GVirConfigDomain object.
2013-06-07 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Add GVirConfigDomainSnapshot getters/setters
gconfig: Add GVirConfigDomainSnapshotDisk getters/setters
gconfig: Add GVirConfigDomainSnapshotDisk skeleton
gconfig: Add gvir_config_domain_disk_[gs]et_driver_format
libvirt commit
http://libvirt.org/git/?p=libvirt.git;a=commit;h=e2c41e486018ee74f6a75c1f717622
strongly hints that driver type for a disk domain should be an
enum rather than a raw string. Since we already have setters/getters
for this attribute, we can't use the same name as in the XML. However,
as Daniel Berrangé pointed out,
gvir_config_domain_disk_[gs]et_driver_format is a better name for this,
so we add the API accepting an enum under this name.
I did not set "Rename to: gvir_config_domain_disk_[gs]et_driver_format"
in a gtk-doc comment to force bindings to use this better version
as this would break Boxes for example.
gconfig: Add GVirConfigDomainDiskFormat enum
gconfig: Allow not found child in gvir_config_object_get_child_with_type
This will be useful when implementing gvir_domain_snapshot_get_parent()
as the child node 'parent' is not always present in the XML.
2013-05-12 Christophe Fergeau <cfergeau@redhat.com>
build-sys: s/INCLUDES/AM_CPPFLAGS
automake outputs a warning about AM_CPPFLAGS being the recommended
name to use for INCLUDES
glib: Add G_GNUC_PRINTF where appropriate
This is used to tell the compiler about printf-like format strings
used by some functions. Without this marking, gcc 4.8 is outputs
warnings to recommend using it.
Adjust examples for gvir_config_object_get_conf rename
It was renamed to gvir_config_object_to_xml() a long while ago.
2013-05-02 Christophe Fergeau <cfergeau@redhat.com>
object: Add "transfer none" annotation to argv parameter
This makes the parameter to be passed "unowned" in Vala. This was
previously done using a vala metadata file, but it's better to do
it directly through a gtk-doc annotation, as this means the gir
file will know about this, and thus any gir-based binding can
make use of this info.
This also makes libvirt-gobject consistent with what was done
for gconfig and glib in commit 431720.
2013-05-01 Christophe Fergeau <cfergeau@redhat.com>
Rename misnamed 'conn' variable everywhere
Through copy and paste from libvirt-gobject-connection.c, we end
up with an instance variable named 'conn' in most of our classes
even if we are not manipulating a connection object. This commit
renames all 'conn' occurrences in libvirt-gobject and
libvirt-gconfig with a name more consistent with the type of the
variable named 'conn'.
gconfig: Fix gvir_config_domain_graphics_new_from_tree
It does not handle the recently added
GVirConfigDomainGraphicsRdp and GVirConfigDomainGraphicsDesktop
classes.
2013-04-19 Daniel P. Berrange <berrange@redhat.com>
Adopt saner libtool versioning scheme from libvirt
The current way libtool versioning is calculated has a timebomb
when the package version number changes to 1.0.0, which will
cause the library soname to change. Adapt to the latest libvirt
macros for libtool versioning, which use an explicit variable
LIBVIRT_GLIB_SONUM setting for changing soname.
2013-04-16 Christophe Fergeau <cfergeau@redhat.com>
Fix year in NEWS
We switched from 2012 to 2013!!
2013-04-10 Daniel P. Berrange <berrange@redhat.com>
Auto-generate AUTHORS file from GIT logs during make dist
Instead of manually keeping the AUTHORS file in sync with
GIT, auto-generate it during make dist phase
Add framework for i18n of error message strings
2013-04-08 Daniel P. Berrange <berrange@redhat.com>
Add printf/sentinel attribute annotations to helper functions
To allow the compiler to check args add G_GNUC_PRINTF and
G_GNUC_NULL_TERMINATED to libvirt-gconfig-helpers-private.h
2013-04-03 Christophe Fergeau <cfergeau@redhat.com>
gconfig: Add GvirConfigStoragePermission getters
gconfig: Add GvirConfigStoragePoolTarget getters
gconfig: Add GVirConfigStoragePoolSource getters
gconfig: Add GVirConfigStoragePool getters
gconfig: Add calls to [gs]et_virt_type to domain tests
Setting GVirConfigDomain::virt_type is required for a working
domain configuration, using it in the test programs will be helpful
if people are using this as a base when starting to use libvirt-gconfig
config: Add GVirConfigDomainChannel getters
config: Add GVirConfigDomainGraphicsDesktop class
config: Add GVirConfigDomainGraphicsRdp class
config: Add gvir_config_domain_graphics_sdl_set_fullscreen()
config: Fix 2 leaks in domain memory setters
2013-04-03 Stefano Facchini <stefano.facchini@gmail.com>
build: Replace obsolete macro in configure.ac
Fix the build for newer automake
2013-04-02 Daniel P. Berrange <berrange@redhat.com>
Disable static libraries by default
Every source file is currently built twice by libtool, once for
the shared library and once for the static library. Static libs
are not commonly packaged by distros and slow down compilation
time by more than 50% compared to a shared-only build time.
Time for non-parallel make
shared only: 52 secs
shared + static: 1 min 26 secs
Those few people who really want them, can pass --enable-static
to configure
Disabling them by default requires use of LT_INIT. We don't need
to support older libtool, so drop use of AM_PROG_LIBTOOL entirely
2013-03-19 Daniel P. Berrange <berrange@redhat.com>
Post release version bump
2013-03-18 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.1.6 release
Add Claudio Bley to AUTHORS
2013-03-14 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: API for SPICE image compression
This patch adds API to set/get image compression configuration on
domain/graphics[@type='spice'] nodes.
Also included are simple tests for this API.
Add gvir_config_object_replace_child_with_attribute_enum()
Internal libvirt-gconfig helper to replace enum XML attributes.
2013-03-12 Christophe Fergeau <cfergeau@redhat.com>
Remove FSF address from source file headers
The FSF moved a while ago which made the address we use in every
source file header invalid. Follow the recommendation from
http://www.gnu.org/licenses/gpl-howto.html and don't put any address
in these headers, just a link to the fsf website.
2013-02-07 Claudio Bley <cbley@av-test.de>
gvir_stream_receive: annotate buffer parameter with "element-type guint8"
Vala automatically regards parameters as strings when an array of char
is used. We need to prevent this as the data given is an array of octets
ie. arbitrary data, not chars.
Add "transfer none" annotation to argv parameter
This makes the parameter to be passed "unowned" in Vala.
Fix typo in gvir_config_init's comment
This broke the generated Vala API.
2013-01-24 Christophe Fergeau <cfergeau@redhat.com>
Fix potential crashes in error cases
fetch_list implementations in libvirt-gobject-connection.c and
libvirt-gobject-storage-pool.c can misbehave in error situations
or when the call is cancelled:
- when the call is cancelled, 'lst' will be NULL and 'n' non-0 so
we'll try to iterate over 'lst', which will cause a crash
- when list_func fails, 'lst' is likely to be uninitialized, which
will lead to invalid frees in the memory cleanup in the error: branch.
We can avoid this issue by making sure 'lst' is initialized to 0
when it's created.
Use g_strlcpy instead of strncpy
This guarantees that the string will be nul-terminated. Coverity
warned about this issue.
2013-01-22 Michal Privoznik <mprivozn@redhat.com>
Don't redefine _FORTIFY_SOURCE macro
If the _FORTIFY_SOURCE has been already defined, we unconditionally
redefine it, leaving us with warning/error thrown at compilation time.
2013-01-14 Daniel P. Berrange <berrange@redhat.com>
Post-release version bump
Add libvirt-gobject-storage-pool-private.h to noinst_HEADERS
Replace tabs with spaces
Update NEWS for 0.1.5 release
2013-01-11 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Entertain bridge interface devices
Currently we ignore bridge interface devices from domain XML. This patch
fixes that.
2013-01-09 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: API to open read-only connection to libvirt
Also a utility method to check if connection is open in read-only mode.
2012-12-19 Alexander Larsson <alexl@redhat.com>
Add smartcard support to libvirt-gconfig
This handles <smartcard> devices.
2012-11-21 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gobject: Also delete storage volume from its pool's list
Without this patch, storage pool still lists the volume even after it is
deleted.
Related Boxes bug: https://bugzilla.gnome.org/show_bug.cgi?id=688724
2012-11-16 Daniel P. Berrange <berrange@redhat.com>
Post release version increment
Remove tabs in source directory
Update NEWS for 0.1.4 release
2012-11-14 Christophe Fergeau <cfergeau@redhat.com>
gobject: Add gvir_storage_pool_get_{active,persistent}
gobject: Wrap virStoragePoolDelete
gobject: Wrap virStoragePoolUndefine
gobject: Wrap virStoragePoolDestroy
gobject: don't try to use pool's volumes before a successful refresh
gvir_storage_pool_refresh must be called and must be successful before
trying to use gvir_storage_pool_get_volume,
gvir_storage_pool_get_volumes and gvir_storage_pool_create_volume.
As the storage pool refresh can fail for reasons external to
libvirt/libvirt-gobject, the library user should check _refresh
errors. This commit outputs runtime warnings when these functions
are called and GVirObjectStoragePool::priv::volumes is NULL.
gobject: Fix GMutex leak
When GLib deprecated g_mutex_new/g_mutex_free, we introduced a
compatibility wrapper to implement these using non-deprecated
functions. This was done by allocating 0-filled memory by the
mutex, and then letting GLib initialize the structure when
needed. However, we must call g_mutex_clear when destroying
the mutex to free these resources, which this patch fix.
Fix glib version check for g_type_init
g_type_init has been deprecated in glib 2.35, not 2.34. With versions
older than 2.35, we have to call it or we'll get a runtime failure.
2012-11-14 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
docs: Specify correct function to free GVirDomainInfo
gobject: Add GVirDomainRebootFlags
Add flags to be used with gvir_domain_reboot().
2012-11-14 Christophe Fergeau <cfergeau@redhat.com>
Don't call g_type_init on newer glib
This function call is deprecated and calling it causes a compilation
warning.
test: Remove redundant call to g_type_init
test-domain-parse calls both g_type_init and gvir_config_init. Given
that gvir_config_init calls g_type_init, the g_type_init call is
redundant, so let's remove it.
stream: Fix small error in gvir_stream_receive doc
gobject: Fix handle leak on wrapper object creation
When creating an object wrapping a libvirt object (GVirDomain,
GVirStoragePool, GVirStorageVol), libvirt-gobject gets a reference
to a libvirt object to be used as a handle, and then creates the wrapper
object by calling g_object_new(..., "handle", handle, NULL);
However, the underlying libvirt object is registered as a boxed type
with the gobject type system, and the handle setter for these object
calls g_value_dup_boxed, which in turn adds a reference on the libvirt
handle. Thus we must release the initial ref we hold on the libvirt
handle after calling g_object_new().
I noticed this bug after running in valgrind some code which calls
gvir_storage_pool_refresh and gvir_connection_fetch_storage_pools.
gobject: Error out on NULL name in gvir_storage_pool_get_volume
Without this change, gvir_storage_pool_get_volume segfaults when
trying to do the hash table lookup with a NULL 'name' key.
Introduce gvir_warning/gvir_critical
They are similar to g_warning/g_critical, but also log the last
libvirt error. They are meant to be called right after a libvirt
call failed, in other cases g_warning/g_critical are still to be
used.
2012-11-14 Alexander Larsson <alexl@redhat.com>
gobject: Add gvir_domain_update_device() and enums needed for it
This is a wrapper for virDomainUpdateDeviceFlags.
2012-10-10 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
gconfig: Add API to set domain/pm tree
API for new domain power management configuration.
2012-10-09 Daniel P. Berrange <berrange@redhat.com>
Post-release version bump
2012-10-08 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.1.3 release
Add Alex to AUTHORS file
2012-10-04 Alexander Larsson <alexl@redhat.com>
Add wrappers for virDomainPMWakeup
2012-10-03 Christophe Fergeau <cfergeau@redhat.com>
build-sys: Raise libvirt requirement to 0.10.2
The recent PMSuspend changes need libvirt 0.10.2 or newer.
spec: Get min libvirt version from configure.ac
The minimum libvirt version we need is duplicated in configure.ac
and libvirt.spec.in. Since libvirt.spec.in already gets some variables
substituted, we can also substitute LIBVIRT_REQUIRED to avoid the
duplication.
2012-09-28 Christophe Fergeau <cfergeau@redhat.com>
gobject: Emit a signal on WAKEUP events
This avoids a runtime warning about this kind of event not
being handled.
gobject: Handle PMSUSPENDED state from libvirt
Emit a signal when switching to the PMSUSPENDED state, and add
an enum entry to describe this state. This avoids runtime warnings
with newer libvirt.
2012-09-26 Christophe Fergeau <cfergeau@redhat.com>
Implement gvir_config_domain_graphics_spice_get_port
Add a few GVirConfigDomainGraphicsVnc getters
Implement gvir_config_domain_graphics_vnc_set_socket
Fix *_new_from_xml
For objects with a subtype 'type' attribute, when the _new_from_xml
function was called, the 'type' attribute was forcefully set to the
right value rather than checking that the passed-in value matches
the type of the subclass we are trying to instantiate. This commit
changes this, and returns NULL when the value of the 'type' attribute
of the passed-in XML document does not match the expected type.
2012-09-26 Jovanka Gulicoska <jovanka.gulicoska@gmail.com>
Don't call g_set_error with a NULL format string
The format string passed to g_set_error cannot be NULL or a runtime
warning will be printed.
2012-09-18 Michal Privoznik <mprivozn@redhat.com>
autobuild: Init AUTOBUILD_INSTALL_ROOT variable
Otherwise autobuild sets prefix to / resulting in
Permission denied when building as non-root as
'make install' tries to write to /lib. We need to
set this var to accessible path like $HOME/builder.
2012-09-13 Michal Privoznik <mprivozn@redhat.com>
gobject: Introduce gvir_connection_get_version
which is basically a wrapper for virConnectGetVersion().
gobject: Introduce gvir_connection_get_hypervisor_name
which is basically a wrapper for virConnectGetType().
2012-09-12 Timo Juhani Lindfors <timo.lindfors@iki.fi>
Use 1 GB of RAM in Python example (instead of 1 TB)
Specify virtualization type in Python example
Without this creating the domain fails:
gi._glib.GError: Failed to create domain: internal error missing domain type attribute
2012-09-04 Christophe Fergeau <cfergeau@redhat.com>
config: Add gvir_config_domain_[gs]et_current_memory
libvirt will insert a <currentMemory> node when setting the domain
maximum memory. If we want to be able to later increase the domain
maximum memory, libvirt-gconfig needs to be able to set this
currentMemory node as well, otherwise this will cap the available
memory in the domain.
config: Handle units in gvir_config_[gs]et_memory
gvir_config_[gs]et_memory have an optional 'unit' attribute which
indicates the unit used to express the memory size. This commit
adds support for parsing this unit, and adjusting the returned
value accordingly.
config: Improve documentation of GVirConfigDomain::set_memory
Explicit the fact that it sets the maximum domain memory.
config: Allow NULL node name to gvir_config_object_set_content
This is useful when you want to set the content of the current node.
2012-08-20 Daniel P. Berrange <berrange@redhat.com>
Post release version bump
Update NEWS for 0.1.2 release
Don't hold events lock when dispatching free callbacks
The _event_timeout_remove and _event_handle_remove methods
were holding onto the global lock when invoking the free
callback. This is a violation of the libvirt events API
contract which requires free callbacks to be invoked in
a re-entrant safe context.
2012-08-09 Christophe Fergeau <cfergeau@redhat.com>
Fix small typo in error message ('downlaod')
2012-08-07 Marc-André Lureau <marcandre.lureau@redhat.com>
libvirt-gobject.sym: fix resume() symbols version
Post-release version bump
2012-08-07 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add async variant of gvir_domain_resume()
2012-08-06 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Release 0.1.1
2012-08-03 Jovanka Gulicoska <jovanka.gulicoska@gmail.com>
Add bindings for virDomainSnapshotCreateFlags
Add bindings for virDomainSnapshotCreateXML()
2012-07-31 Jovanka Gulicoska <jovanka.gulicoska@gmail.com>
Add bindings for virDomainRestore*()
2012-07-20 Marc-André Lureau <marcandre.lureau@redhat.com>
gobject: add GVir.DomainShutdownFlags binding
2012-07-18 Marc-André Lureau <marcandre.lureau@redhat.com>
gobject: add GVir.DomainXMLFlags binding
Post-release version bump
2012-07-16 Daniel P. Berrange <berrange@redhat.com>
Update NEWS for 0.1.0 release
Add Jovanka Gulicoska to AUTHORS
2012-07-14 Jovanka Gulicoska <jovanka.gulicoska@gmail.com>
Add bindings for virStorageDownload() & virStorageUpload()
Add bindings for virDomainSave*()
2012-06-27 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Test cases for new domain CPU APIs
Add GVirConfigDomainCpu class
API to handle 'domain/cpu' nodes.
Make GVirConfigCapabilitiesCpu.get_features virtual
Also provide helper function for subclasses that will have the exact
same implementation except that they'll return instances of another type
(subclasses of GVirConfigDomainCpuFeature rather than
GVirConfigDomainCpuFeature itself).
2012-06-26 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add GVirConfigDomainCpuFeature class
API to handle 'domain/cpu/feature' nodes.
Add gvir_config_capabilities_cpu_feature_set_name()
Setter for CapabilitiesCpuFeature.name.
Setters for CapabilitiesCpuTopology props
Add gvir_config_capabilities_cpu_topology_new*
Provide constructor methods for GVirConfigCapabilitiesCpuTopology.
Setters/adders for GVirConfigCapabilitiesCpu props
- gvir_config_capabilities_cpu_add_feature
- gvir_config_capabilities_cpu_set_topology
2012-06-25 Christophe Fergeau <cfergeau@redhat.com>
Add API doc for GVirConfigDomainControllerUsb
2012-06-25 Daniel P. Berrange <berrange@redhat.com>
Bump version to 0.1.0
Update NEWS for 0.0.9 release
Move gvir_config_domain_filesys_set_ram_usage sym to correct version block
Tweaks to mingw-libvirt-glib.spec.in
Add support for domain filesystems with type=bind|ram
This adds support for filesystems with type=bind or type=ram,
eg
<filesystem type='bind'>
<source dir="/some/guest/file"/>
<target dir=/other/guest/file"/>
</filesystem>
And
<filesystem type='ram'>
<source usage='102400'/>
<target dir='/run'/>
</filesystem>
2012-06-25 Christophe Fergeau <cfergeau@redhat.com>
mainloop: don't reschedule deleted timeouts/watches
The deletion of libvirt timeouts/watches is done in 2 steps:
- the first step is synchronous and unregisters the timeout/watch
from glib mainloop
- the second step is asynchronous and triggered from the first step.
It releases the memory used for bookkeeping for the timeout/watch
being deleted
This is done this way to avoid some possible deadlocks when
reentering the sync callback while freeing the memory associated
with the timeout/watch.
However, it's possible to call gvir_event_update_handle after
gvir_event_remove_handle but before _event_handle_remove does
the final cleanup. When this happen, _update_handle will reregister
the handle with glib mainloop, and bad things will happen when
a glib callback is triggered for this event after _event_handle_remove
has freed the memory associated with this handle watch.
This commit marks the timeouts and watches as removed in the
synchronous _remove callback and makes sure removed timeouts/watches
are ignored in _update callbacks.
mainloop: protect 'handles' and 'timeouts' against concurrent accesses
Timeout and watch deletion is done from an idle callback. However,
we cannot assume that all libvirt event calls (the callbacks passed
to virEventRegisterImpl) will be done from the mainloop thread. It's
thus possible that a libvirt event call will run a thread while
one of the idle deletion callbacks runs.
Given that the 'handles' and 'timeouts' arrays are shared among all
threads, we need to make sure we hold the 'eventlock' mutex before
modifying them.
mainloop: remove unused gvir_event_{handle,timeout}_update arg
mainloop: add missing debug message
All timeout and watch additions/updates/removals are logged except
successful watch updates. This commit adds such a log message.
mainloop: improve handle operations debug messages
Make sure the watch ID and the address of the structure libvirt-glib
uses to watch the handle are always printed to make tracking operation
on the same watch easier.
2012-06-23 Marc-André Lureau <marcandre.lureau@redhat.com>
Add async version of gvir_domain_start
2012-06-20 Daniel P. Berrange <berrange@redhat.com>
Switch over to mingw64 toolchain for Windows builds
2012-06-19 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add getter for GVirConfigDomainOs.os_type
2012-06-18 Daniel P. Berrange <berrange@redhat.com>
Remove bogus check against -1 of gvir_config_genum_get_value return value
The gvir_config_domain_disk class was checking the return value
of gvir_config_genum_get_value against -1. This is impossible,
since this method will return the default enum value
Fix generation of filesystem device source XML element
When setting the filesystem source type, the code forgot to
update priv->type. Thus when setting the source element,
the incorrect attribute was being used.
2012-06-13 Christophe Fergeau <cfergeau@redhat.com>
build: allow building with newer glibc-headers and -O0
Commit log and autoconf snippet written by Eric Blake for libvirt.
glibc 2.15 (on Fedora 17) coupled with explicit disabling of
optimization during development dies a painful death:
In file included from /usr/include/limits.h:27:0,
from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:169,.
from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/syslimits.h:7,
from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:34,
from util/bitmap.c:26:
/usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
cc1: all warnings being treated as errors
Work around this by only conditionally defining _FORTIFY_SOURCE,
in the case where glibc can actually use it. The trick is using
AH_VERBATIM instead of AC_DEFINE.
* m4/virt-compile-warnings.m4 (LIBVIRT_GLIB_COMPILE_WARNINGS): Squelch
_FORTIFY_SOURCE when needed to avoid glibc #warnings.
2012-06-04 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to get/set domain title
2012-06-01 Michal Privoznik <mprivozn@redhat.com>
glib-events: Allow zero timeouts for timer
In libvirt, it's perfectly possible and widely used to have disabled
timers (timeout=-1) and fire them up 'randomly' with timeout=0.
However, with current mapping into glib mainloop it's not possible
and causing troubles.
2012-05-25 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to deal with topology information of CPU capabilities
Add gvir_config_object_get_attribute_uint64()
Another internal libvirt-gconfig helper to get uint64 XML attributes.
2012-05-23 Christophe Fergeau <cfergeau@redhat.com>
Check arguments to public libvirt-gobject methods
Some public methods in libvirt-gobject don't have g_return_if_fail
checks on their arguments. It happens that GNOME Boxes tries to call
gvir_connection_find_storage_pool_by_name with a NULL GVirConnection
causing a crash https://bugzilla.gnome.org/show_bug.cgi?id=676216 While
GNOME Boxes needs to be fixed not to pass an invalid value to this
function, it's better if libvirt-object sanity checks the argument it is
passed by the caller before using them. In this commit, I've went over
all libvirt-gobject public functions to add g_return_if_fail checks
where needed.
2012-05-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add getter for GVirConfigDomainOS.arch
2012-05-21 Christophe Fergeau <cfergeau@redhat.com>
Check arguments to public GVirConfigObject methods
GVirConfigObject public methods don't have g_return_if_fail checks
on their arguments. It happens that GNOME Boxes tries to call
gvir_config_object_to_xml with a NULL GVirConfigObject causing a
crash https://bugzilla.gnome.org/show_bug.cgi?id=676308
While GNOME Boxes needs to be fixed not to pass an invalid value
to gvir_config_object_to_xml, it's better if libvirt-gconfig sanity
checks the argument it is passed by the caller before using them.
2012-05-16 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add getter for GVirConfigDomain.virt_type
2012-05-15 Christophe Fergeau <cfergeau@redhat.com>
Make sure %with_vala is defined for newer RHELs
We want to build the vala bindings on recent RHELs. Given than
%with_introspection is defined for fedora >= 15 and rhel > 6 which
are exactly the versions for which we want to build the vala bindings,
and given that the vala bindings are to be disabled when introspection
is disabled, we can set %with_vala to the same value as %with_introspection.
2012-05-15 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Forgotten fixes to capabilities API test app
2012-05-14 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add missing domain OS type enums
Add some tests for new capabilities APIs
Add guest capabilities API
Not quite complete but its a good start.
Add host capabilities API
Not quite complete but its a good start.
2012-05-11 Christophe Fergeau <cfergeau@redhat.com>
Make memory-handling more explicit in API doc
Explain how the return value of the (transfer full) methods should
be freed. I also made some cosmetic changes in the API doc of some
of the files as I was modifying them.
2012-05-11 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to get capabilities from connection
Add gvir_config_domain_os_get_boot_devices()
Allow unsetting of object properties
This changes gvir_config_object_attach_replace to accept a NULL
child object. Since we need to be able to find the node to remove
when this happens, gvir_config_object_attach_replace gets a third
argument with the name of the node to add/remove.
Allow unsetting of string properties
This changes gvir_config_object_set_node_content to accept a NULL
content and to remove the corresponding node when this happens
Add gvir_config_domain_get_os()
2012-05-10 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
More internal helpers for GVirConfigObject subclasses
- gvir_config_object_get_child()
- gvir_config_object_get_child_with_type()
2012-05-09 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Correct gvir_config_domain_source_pty_set_path()
This function should set 'path' as attribute of 'source' node rather
than as child node.
2012-05-08 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Remove a redundant struct field
2012-05-02 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Corrections to satisfy latest GIR
2012-05-02 Daniel P. Berrange <berrange@redhat.com>
Add complete docs for the Libvirt GLib library
Flesh out the section intros for each of the Libvirt GLib
library modules, providing using examples where needed, and
adding any missing function docs.
2012-05-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2012-04-27 Daniel P. Berrange <berrange@redhat.com>
Prep NEWS for 0.0.8 release
2012-04-27 Daniel P. Berrange <dan@berrange.com>
Add Michael to AUTHORS
2012-04-27 Christophe Fergeau <cfergeau@redhat.com>
Add GVirConfigDomainTimerPit class
Add GVirConfigDomainTimerRtc class
Implement gvir_config_domain_clock_add_timer
Implement gvir_config_domain_timer_[gs]et_tick_policy
Make GVirConfigDomainTimer abstract
Specialized timer classes will inherit from it
2012-04-24 Michal Privoznik <mprivozn@redhat.com>
test-domain-create: Don't shadow global variable
In function create_usb_controller variable 'index' shadows a global
declaration.
2012-04-19 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add async variant of gvir_domain_get_info()
Correct some minor typos in docs
2012-04-18 Christophe Fergeau <cfergeau@redhat.com>
Parse GVirConfigDomainRedirdev nodes
Update gvir_config_domain_device_new_from_tree to handle
GVirConfigDomainRedirdev nodes
Parse GVirConfigDomainController nodes
Update gvir_config_domain_device_new_from_tree to handle
GVirConfigDomainController nodes. For now, libvirt-gconfig only
has a GVirConfigDomainControllerUsb class, so only this type of
controllers can be parsed.
2012-04-17 Christophe Fergeau <cfergeau@redhat.com>
test-domain-create: set an address for redirdev devices
Implement gvir_config_domain_redirdev_set_address
Implement GVirConfigDomainAddressUsb
Improve USB device creation in test-domain-create
Implement gvir_config_domain_controller_set_address
Implement GVirConfigDomainAddressPci
It already has the needed setters.
Add GVirConfigDomainAddress abstract type
This is an abstract type which will be the base class for device
addresses.
test-domain-create: add USB controller creation
Implement gvir_config_domain_controller_usb_set_master
Add gvir_config_domain_controller_usb_set_model
Add GVirConfigDomainControllerUsb boilerplate
Implement gvir_config_domain_controller_[gs]et_index
Add GVirConfigDomainController skeleton
2012-04-12 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Getter/setter for disk source's startupPolicy attribute
2012-04-12 Guido Günther <agx@sigxcpu.org>
Explicitly link conn-test against libvirt-gconfig libvirt-glib
otherwise the build fails with:
$ CCLD conn-test
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_set_error@LIBVIRT_GLIB_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_network_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_storage_pool_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_init_check@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_get_type@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_object_to_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_event_register@LIBVIRT_GLIB_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_init_check@LIBVIRT_GLIB_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_get_devices@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_storage_vol_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_secret_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_interface_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_disk_get_type@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_disk_get_target_dev@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_interface_get_type@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_node_device_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_device_get_type@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_object_get_type@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_error_new_literal@LIBVIRT_GLIB_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_snapshot_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_network_filter_new_from_xml@LIBVIRT_GCONFIG_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_set_error_literal@LIBVIRT_GLIB_0.0.4'
../libvirt-gobject/.libs/libvirt-gobject-1.0.so: undefined reference to `gvir_config_domain_interface_get_ifname@LIBVIRT_GCONFIG_0.0.4'
collect2: ld returned 1 exit status
This is caused by a Debian specific libtool change that doesn't emit the
dependency_libs in the .la file.
2012-04-11 Guido Günther <agx@sigxcpu.org>
Raise symbol version number
since new symbols were introduced since 0.0.4
2012-04-04 Daniel P. Berrange <berrange@redhat.com>
Ensure libvirt-gobject-devel pulls in libvirt-devel RPM
2012-03-30 Daniel P. Berrange <berrange@redhat.com>
Bump release number
Update NEWS for 0.0.7 release
Update RPM specs to required libvirt 0.9.10
Fix typo s/ACCESS_SQUASHED/ACCESS_SQUASH/
Fix generation of docs in a VPATH builder
The DOC_SOURCE_DIR variable was missing the $(top_srcdir) variable
so it could not find the source files when run from a VPATH build.
Empirically the previous comment saying that $(top_srcdir) was not
needed is wrong.
2012-03-28 Christophe Fergeau <cfergeau@redhat.com>
Do not encode entities in XML attributes
libxml2 will properly escape < > and " in XML attribute content. If
we use xmlEncodeEntitiesReentrant for attributes, this causes issues
with UTF8 filenames (gvir_config_domain_disk_set_source for example):
the filename UTF8 characters will be substituted with entities
(é -> é), but when it uses this filename, libvirt will use it as
is and will fail to find the file.
I've tested that with this change gnome-boxes can open ISOs in directories
with 'é' in their names, and in directories with '&foo;xx<' in their names.
Remove unneeded call in libvirt-gconfig test
Because of a copy and paste error, the test program is making an
unneeded call to gvir_config_domain_channel_set_target_type
when setting up its USB redirection device.
2012-03-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2012-03-14 Christophe Fergeau <cfergeau@redhat.com>
Add GVirConfigDomainRedirdev
This is used to add the SPICE USB redirection channel. Even if
the libvirt doc doesn't document it with the other devices deriving
from GVirConfigDomainChardev, I think it makes sense to have this
class derivers from GVirConfigDomainChardev too since it needs a
GVirConfigDomainChardevSource, and it's documented as using a
character device for redirection.
Add LibvirtGConfigDomainChardevSourceSpiceVmc
This is needed to be able to add the SPICE agent channels
2012-03-13 Christophe Fergeau <cfergeau@redhat.com>
Fix GVIR_CONFIG_DOMAIN_CHANNEL_TARGET_GUESTFWD name
It was called GVIR_CONFIG_DOMAIN_CONSOLE_TARGET_GUESTFWD, which in
turn confused glib-mkenums, leading to a wrong value being generated
in the XML when trying to use this enumeration.
2012-03-12 Christophe Fergeau <cfergeau@redhat.com>
Remove the _glib xml helpers
The reason for them being there was that they were more expensive
than the helpers returning an xmlChar* (additional g_strdup). Now
that we are returning a pointer to const data inside the xml node,
the _glib helpers only use is to cast from const xmlChar * to
const char *. Removing them makes the code simpler.
2012-03-12 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
All string getters should return 'const'
There is no need for all the memory (de)allocations and especially
forcing the app developers to free the strings. They can always
g_strdup() the returned string if they need.
Reviewer and co-author: Christophe Fergeau <cfergeau@redhat.com>
2012-03-06 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Keep domain devices list sorted
While we don't guarantee the order of devices in the list returned from
gvir_domain_get_devices(), its not a bad idea to keep them sorted the
same way we get them from configuration (XML).
2012-03-05 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Release 0.0.6
Distribute GNUmakefile, cfg.mk and maint.mk files
2012-03-02 Marc-André Lureau <marcandre.lureau@redhat.com>
Don't leak GVirStream
Do not give away a reference to virStreamEventAddCallback, but manage
stream life-time and event instead.
It seems to be a bug in current implementation of libvirt
remoteStreamCallbackFree() that doesn't call the free/notify cb for
some reason. (even if it did, I am not sure it would work correctly,
so I prefer that patch)
2012-03-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Correct a check
RFC: Empty statistics for user-mode interfaces
One of the limitations of user-mode networking of libvirt is that you
can't get statistics for it (not yet, at least). Instead of erroring-out
in that case, simply return empty statistics result and spit a debug
message.
I will merge this into my 'Remove now redundant 'path' property' patch
once someone tells me that this makes sense. :)
Add gvir_domain_get_devices()
Currently we only support existing DomainDevice implementations:
DomainDisk and DomainInterface.
Remove now redundant 'path' property
Remove now redundant 'path' property from GVirDomainDevice subclasses.
These classes now have access to their configurations, from which they
can easily get the path (among other properties) internally.
2012-02-29 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add 'config' property to GVirDomainDevice
GVirDomainDevice should have an associated GVirConfigDomainDevice.
Getters for GVirConfigDomainInterface attributes
Add gvir_domain_device_get_domain()
Getter for the associated domain of a domain device.
Set correct target node attribute for domain interface
gvir_config_domain_interface_set_ifname() should be setting 'dev'
attribute under 'target', not 'device'.
Add gvir_domain_disk_resize()
Binding for virDomainBlockResize().
2012-02-28 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2012-02-20 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Use strncpy rather than g_utf8_strncpy
We need to copy fixed number of bytes (not characters) so use strncpy.
2012-02-20 Daniel P. Berrange <berrange@redhat.com>
Add notes for 0.0.5 release
2012-02-20 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Fixes to gvir_domain_*save*() docs
The saved state of a domain is restored using gvir_domain_start() rather
than gvir_domain_resume().
2012-02-19 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to get node information about the connection
Mostly just a wrapper around virNodeGetInfo() and virNodeInfo struct.
Add Flags for use with gvir_domain_delete()
2012-02-16 Christophe Fergeau <cfergeau@redhat.com>
Add more sanity checks to libvirt-gconfig test
Add gvir_config_domain_disk_[gs]et_cache
Fix [gs]et_custom_xml-related leaks
I forgot to run the testing code through valgrind before pushing
the patches so a few small memory leaks crept in.
2012-02-16 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_domain_get_saved()
Binding for virDomainHasManagedSaveImage().
Correct docs for gir_domain_save*()
A saved domain is stopped/shutdown on a successful save operation, not
suspended.
Tell CC to ignore unused macros
2012-02-15 Daniel P. Berrange <berrange@redhat.com>
Avoid triggering deprecation warnings on newest GLib
2012-02-14 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_storage_vol_resize()
Add wrapper for virStorageVolResize().
Volume keeps an weak ref to its parent pool
2012-02-10 Daniel P. Berrange <berrange@redhat.com>
Rename 'unlink' variable to avoid clash on Win32
Switch over to use GNULIB's compile warning macros
Add missing default: in example program
Simplify condition that is always true
Disable unused macro for debug
2012-02-06 Christophe Fergeau <cfergeau@redhat.com>
Add testcase for gvir_config_domain_[gs]et_custom_xml
API to get/set custom metadata from/to domain config
Based on a patch from Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_config_object_set_namespace helper
Handle namespaces in gvir_config_object_delete_child{ren}
These functions now take an additional argument corresponding to
a namespace href. It's optional and can be NULL when namespaces
should be ignored.
The 'child_name' argument can now be NULL in order to remove all nodes
belonging to a given namespace.
Factorize xml dumping code
Use the new gvir_config_xml_node_to_string to implement
gvir_config_object_to_xml, this avoids duplicating this code.
Add gvir_config_xml_node_to_string helper
Make root_node optional in gvir_config_xml_parse
It's only used to make some sanity checks on what was just parsed,
so allowing NULL root_node is fine.
Fix gvir_config_object_new_from_xml error reporting
It's currently failing to report parsing errors if the passed in
error is NULL.
2012-02-05 Christophe Fergeau <cfergeau@redhat.com>
Don't assign const char * to non-const
This causes a gcc warning.
2012-01-31 Christophe Fergeau <cfergeau@redhat.com>
Replace g_error with g_warning in constructors
g_error generates a fatal error message, meaning it will abort
the currently running process. It's nicer to use g_warning here.
Don't use g_error in xxx_get_name
g_error will trigger an abort of the running process so it's not
desirable to call it in a library. This commit uses g_warning when
this occurs and returns NULL. libvirt will only return NULL for these
strings if some kind of memory corruption is going on, or if we are
using an invalid pointer.
Add proper error reporting to gvir_storage_vol_get_path
gvir_storage_vol_get_name currently call g_error when an error occurs.
Since g_error trigger a coredump, calling it in a library is harmful.
Replace this with proper GError error reporting.
2012-01-26 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Don't loop forever on blank nodes
2012-01-20 Christophe Fergeau <cfergeau@redhat.com>
Remove 2 unwanted exports
These 2 GVirObject helpers are declared in libvirt-gobject-private.h
and so shouldn't be exported.
Split gvir_config_object_attach
Most of the time we want gvir_config_object_attach to replace
existing nodes, but sometimes (for <devices> subnodes) we want
it to append the new node and to keep the existing nodes with
the same name. This commit solves this by adding 2 distinct helpers,
_attach_add and _attach_replace.
This should fix some unexpected behaviour of various _set_ functions
which were appending new nodes instead of replacing the existing one.
Add gvir_config_object_delete_children
Refactor gvir_config_object_delete_child
By changing gvir_config_xml_foreach_child to make it robust against
current node deletion in the "foreach" callback, we can use
gvir_config_object_foreach_child to implement
gvir_config_object_delete_child
2012-01-18 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Correct return type of gvir_storage_pool_create_volume()
Handle failure of virDomainIsPersistent() correctly
virDomainIsPersistent() failing most probably means that domain is no
longer available so flaging it as transient isn't exactly wrong.
API to get/set 'description' node in domain config
2012-01-18 Daniel P. Berrange <berrange@redhat.com>
Fix syntax-check violations
2012-01-18 Christophe Fergeau <cfergeau@redhat.com>
Fix compilation with glib 2.22
This commit raises glib required version to 2.22 or newer, adds a few
missing functions to libvirt-gobject-compat.h and includes it in the
files using these functions.
2012-01-16 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Make use of G_PARAM_STATIC_STRINGS everywhere
Add gvir_config_domain_disk_set_readonly()
2012-01-16 Christophe Fergeau <cfergeau@redhat.com>
Raise libvirt requirement to 0.9.8
We are using VIR_DOMAIN_EVENT_SHUTDOWN which was introduced
in libvirt 0.9.8. Reflect this requirement by bumping the minimum
version of libvirt we require in configure.ac.
This issue was reported by Nirbheek Chauhan <nirbheek@gentoo.org>
2012-01-13 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Post-release version bump
2012-01-13 Marc-André Lureau <marcandre.lureau@gmail.com>
Fix libvirt error message after finishing a stream
The callback is now added & removed from libvirt-gobject-stream.c
It should have been part of c5a239423a215435626bf6d1af75458c5ec03147.
#0 virErrorMsg (error=VIR_ERR_INTERNAL_ERROR, info=0x7fffffffcf00 "no stream callback registered") at util/virterror.c:760
#1 0x00007ffff627f304 in virReportErrorHelper (domcode=7, errcode=1, filename=0x7ffff6479a4d "rpc/virnetclientstream.c",
funcname=0x7ffff6479ca0 "virNetClientStreamEventRemoveCallback", linenr=514, fmt=<optimized out>) at util/virterror.c:1260
#2 0x00007ffff6339aa4 in virNetClientStreamEventRemoveCallback (st=0x1de8ef0) at rpc/virnetclientstream.c:513
#3 0x00007ffff631a6ba in remoteStreamEventRemoveCallback (st=<optimized out>) at remote/remote_driver.c:3713
#4 0x00007ffff62fe97d in virStreamEventRemoveCallback (stream=0x1db9e00) at libvirt.c:14781
#5 0x00007ffff69114f3 in gvir_stream_update_events (stream=0x1db2570) at libvirt-gobject-stream.c:561
#6 0x00007ffff6911616 in gvir_stream_source_finalize (source=0x1da25e0) at libvirt-gobject-stream.c:606
2012-01-12 Daniel P. Berrange <berrange@redhat.com>
Update NEWS & syms files for 0.0.4 release
Support setting target attributes for console & channel devices
2012-01-12 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add API to check if domain is persistent
Add a predicate and property to check if domain is persistent or not.
2012-01-11 Daniel P. Berrange <berrange@redhat.com>
Add support for shutdown event to avoid console warnings
Add support for configuring serial, parallel & channel devices
The basic config of serial, parallel & channel devices is just
the same as console devices. Add basic stubs for these new
devices
2012-01-09 Christophe Fergeau <cfergeau@redhat.com>
Use g_simple_async_result_is_valid in _finish functions
The _finish functions for async operations can be simplified by
using g_simple_async_result_is_valid instead of doing the checks
it does by ourselves.
2012-01-08 Christophe Fergeau <cfergeau@redhat.com>
Follow glib conventions for SimpleAsyncResult source tag
g_simple_async_result_is_valid() API documentation says that the
source tag field for SimpleAsyncResult objects "by convention, is a
pointer to the _async function corresponding to the _finish function from
which this function is called"
The stream functions were already following this convention, but
other places were using the sync function name as the source tag.
This commit uses the async function name everywhere.
2012-01-06 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to save and suspend
Its just a set of synchronous and asynchronous wrappers around
virDomainManagedSave.
API to suspend a domain
Correct namespace prefix for GVirConfig symbols
Breaks API and ABI on the fundamental level but lets fix this now while
we don't guarantee any API/ABI stability.
2012-01-06 Christophe Fergeau <cfergeau@redhat.com>
Don't mix g_new0 and g_slice_free
There were 2 places where memory was allocated with g_new0 and was
later freed with g_slice_free. This commit uses g_slice_new0 instead.
After this, there are no other occurrences of g_new0 in gobject/ so
the rest of the codebase should be safe from this issue.
Add GVirConfigDomainDisk getters
Add more parsing helpers to GVirConfigObject
Add gvir_config_object_get_node_content_genum,
gvir_config_object_get_attribute
and gvir_config_object_get_attribute_genum to complement the existing
methods. They all act on a child node of the current node. The
_get_attribute functions can also act on the root node of the
GVirConfigObject instance if it's passed NULL instead of a child name.
Implement gvir_config_domain_get_devices
There are some devices which we are not able to parse yet, in these
cases a runtime debug warning is printed in debug mode to tell what's
going on.
Add gvir_config_object_foreach_child helper
When iterating over xmlNodePtr children to parse an XML document
describing a libvirt configuration item, we want to ignore blank
nodes that may have been added to make the initial XML document
"more human readable". Since this will be useful in several places,
move this code to a helper function.
Add gvir_config_object_new_from_tree
This helper function will be useful to create instances of
GVirConfigXXX objects when we already have a "top-level" instance
(eg to create a GVirConfigDomainDisk using the tree stored in a
GVirConfigDomain instance).
Add helpers to parse xml trees
This will be helpful to implement GVirConfig getters.
Introduce libvirt-gconfig-private.h
This header groups all libvirt-gconfig private headers.
Add {replace,add}_with_attribute
These functions may seem very specialized, and the same can easily
be achieved with 2 separate API calls, but since this is something
that is commonly done, these helpers save quite a few lines of code.
Remove FIXME from gvir_config_domain_filesys_set_driver_type
All that was missing to fix it was gvir_config_object_remove_attribute
which now exists.
Overwrite attributes in GVirObject::set_attribute
Zeeshan reported an issue where calling
gvir_config_domain_disk_set_target_dev several times would result in
duplicated 'dev' attributes in the resulting XML instead of overwriting
the existing 'dev' attribute. Since there are no cases interesting to
libvirt-gconfig where having several attributes with the same name is
useful, when calling gvir_config_object_set_attribute*, we can just
remove attributes with the same names as the one we are setting.
Add gvir_gconfig_object_remove_attribute helper
2012-01-04 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add docs for gvir_config_domain_set/get_memory
Its not obvious what units these functions deal with so docs are
critical for these functions.
Correct gvir_storage_pool_get_volumes' return annotation
2012-01-04 Christophe Fergeau <cfergeau@redhat.com>
Call gvir_init_config() in GVirConfig test programs
While not strictly necessary, this sets up glib logging properly on
older glib so that debug logs are not shown by default.
2012-01-03 Christophe Fergeau <cfergeau@redhat.com>
Add gvir_config_domain_graphics_vnc_set_password
Based on the similar patch for SPICE
2012-01-02 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API to set SPICE password
2011-12-23 Christophe Fergeau <cfergeau@redhat.com>
Fix gvir_config_domain_sound_set_model
It's creating an unwanted extra <sound> XML node:
<sound>
<sound model="xxx">
</sound>
instead of the correct
<sound model="xxx">
2011-12-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2011-12-22 Christophe Fergeau <cfergeau@redhat.com>
Add GVirConfigDomainSound
Add python example for LibvirtGConfig
2011-12-19 Daniel P. Berrange <berrange@redhat.com>
Ignore generated .vapi files
Update min libvirt to 0.9.7
Update NEWS for 0.0.3 release
Fix build by exporting missing gvir_config_xml_doc APIs
Update version in all .sym files
Since there are ABI changes, update the version in all .sym
files to force a rebuild of apps
Add binding for virDomainOpenGraphics
Add binding for virDomainOpenConsole
Add support for configuring network bridges
2011-12-15 Christophe Fergeau <cfergeau@redhat.com>
Add annotations for gvir_stream_add_watch{_full}
This should silence this compile warning:
GEN LibvirtGObject-1.0.gir
libvirt-gobject-stream.c:603: Warning: LibvirtGObject:
gvir_stream_add_watch: a rgument func: Missing (scope) annotation for
callback without GDestroyNotify (v alid: call, async)
This also adds API documentation for these functions.
Add gvir_config_storage_pool_set_pool_type
2011-12-13 Christophe Fergeau <cfergeau@redhat.com>
Add GVirConfigStorage* to creation test
Add methods to link GVirStorage* classes together
GVirConfigStorageVolBackingStore and GVirConfigStorageVolTarget can be
associated with a GVirConfigStorageVol.
GVirConfigStoragePoolSource and GVirConfigStoragePoolTarget can be
associated with a GVirConfigStoragePool.
GVirConfigStoragePermissions can be set on either a
GVirConfigStorageVolTarget or a GVirConfigStoragePoolTarget.
Add GVirConfigStoragePermissions setters
Add gvir_config_storage_pool_target_set_path
Add GVirConfigStoragePoolSource setters
Add GVirConfigStorageVolBackingStore setters
Add gvir_config_storage_vol_target_set_format
Add GObject boilerplate for GVirConfigStorage*
We'll need several helper classes to implement configuration of
storage pools and volumes. This commit introduces all of these
in one go. It's just the GObject boilerplate, the actual code will
come in other commits. GVirConfigStoragePermissions is namespaced this
way because it will be used by both GVirConfigStoragePoolTarget and
GVirConfigStorageVolTarget.
Add GVirConfigStoragePool setters
Add some GVirConfigStorageVol setters
Add missing items in GVirConfigDomainVirtType
Put all the items available in virDomainVirt
Fix gvir_config_domain_disk_set_target_bus API
The bus type is actually an enum, let's reflect that in
libvirt-gconfig API
Add GVirConfigDomainInterface setters
These attributes are valid for all types deriving from
GVirConfigDomainInterface so we add it to the base class.
Add GVirConfigDomainInterfaceUser boilerplate
2011-12-07 Christophe Fergeau <cfergeau@redhat.com>
Add "priority" argument to gvir_stream_add_watch_full
This is more consistent with what all the other glib _full APIs
are doing.
2011-12-07 Daniel P. Berrange <berrange@redhat.com>
Only enable vala for Fedora 16 and later
2011-12-06 Daniel P. Berrange <berrange@redhat.com>
Allow cancelling gvir_stream_send_all & gvir_stream_receive_all
Add GCancellable parameters to gvir_stream_send_all and
gvir_stream_receive_all to allow I/O to be interrupted
before completion
Add flags for controling how domains are started
Fix copyright header on chardev related classes
Add vala files to RPM spec
2011-12-06 Christophe Fergeau <cfergeau@redhat.com>
Add test for GVirConfigConsole
Add GVirConfigDomainChardevSourcePty
Implement gvir_config_domain_chardev_add_source
This is used to associate a ChardevSource (pty, file, ...) with a
Chardev (console, serial, ...).
Introduce GVirConfigDomainChardevSource
Add objects for dealing with <console> devices
Add an abstract GVirConfigDomainChardev object for <console>,
<serial>, ... devices and a GVirConfigDomainConsole implementation.
This needs to be completed with a separate GVirConfigDomainChardevSource
inheritance tree which will be specialized to
GVirConfigDomainChardevSourcePty, ... and GVirConfigDomainChardev will
offer a helper function to attach a GVirConfigDomainChardevSource to
a GVirConfigDomainChardev
Use gvir_error_set_literal in more places
GVirConnection has some gvir_set_error uses that can be replaced
by gvir_set_error_set_literal. When passing a single string, this is
safer since we are guaranteed that unwanted printf-format sequences
in the string won't cause issues.
2011-12-05 Christophe Fergeau <cfergeau@redhat.com>
Add gvir_config_domain_set_lifecycle
This is used to control what happens (restart, stop, ...) to the VM
when it crashes, shuts down, ...
2011-12-05 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add wrapper for volume deletion API
2011-12-05 Daniel P. Berrange <berrange@redhat.com>
Introduce gvir_set_error (and friends) & convert all code
The pattern
GError **error;
....
*err = gvir_error_new(...)
is dangerous because 'err' could be NULL, and it is tedious
to expect everyone to check. Introduce a new set of APIs
for setting errors
gvir_set_error(err, ...)
and convert all callers to this new pattern
2011-12-01 Daniel P. Berrange <berrange@redhat.com>
Update copyright dates s/2010/2010-2011/
Add files for 'make syntax-check' rules from GNULIB
The 'syntax-check' rule validates various coding style requirements.
It is run as part of the regular automated builds
* GNUmakefile, maint.mk: syntax-check rules (from GNULIB)
* cfg.mk: Local extra rules & exclusions
* build-aux/useless-if-before-free,
build-aux/vc-list-files: Helpers for syntax check (from
GNULIB)
* autobuild.sh: Run syntax-check as part of build
* configure.ac: Ensure GNUmakefile exists in VPATH builds
Add <config.h> to test case files
Remove trailing whitespace from autogen.sh
Use test -d FOO && test -d BAR instead of test -d FOO -a -d BAR
For greater portability do not rely on the test binary having
a -a option
Remove trailing blank lines from all files
Remove use of '@' in makefiles
* Makefile.am, python/Makefile.am: Remove use of @FOO@ in favour
of $(FOO)
Fix copyright header s/Red Hat/Red Hat, Inc./
Remove useless if before xmlFreeDoc
Remove indentation with TABs from autogen.sh & conn-test.py
Ensure that the generated XML is indented in a pretty format
Add more files to ignore list
Add the domain OS type for containers
Add support for <memballoon> configuration
Fix missing backslash in noinst_HEADERS for libvirt-gconfig
2011-12-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Correct size of GVirStoragePoolInfo.available
Wrap storage volume info API
Wrap storage pool info API
2011-12-01 Daniel P. Berrange <berrange@redhat.com>
Fix file headers / description in gconfig classes
Remove redundant #includes from all gconfig files
The #include <string.h> and #include <libxml/tree.h> is not
required in the vast majority of files
Add support for setting security labels
Add support for the <seclabel> element via a new object
GVirConfigDomainSeclabel.
* libvirt-gconfig-domain-seclabel.c, libvirt-gconfig-domain-seclabel.h,
Makefile.am, libvirt-gconfig.h, libvirt-gconfig.sym: New objects
* libvirt-gconfig-domain.c, libvirt-gconfig-domain.h: API to
associate seclabel with an domain
Add objects for dealing with SDL and VNC graphics config
Add GVirConfigDomainGraphicsSdl and GVirConfigDomainGraphicsVnc
Also change SPICE to use a signed int for port number and add
ability to set autoport & tls port attributes
* libvirt-gconfig/Makefile.am,
libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.c,
libvirt-gconfig/libvirt-gconfig-domain-graphics-sdl.h,
libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.c,
libvirt-gconfig/libvirt-gconfig-domain-graphics-vnc.h,
libvirt-gconfig/libvirt-gconfig.h,
libvirt-gconfig/libvirt-gconfig.sym: Add new objects
* libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.c,
libvirt-gconfig/libvirt-gconfig-domain-graphics-spice.h:
Add autoport & tls port setter, change port setter to use
a signed int
Add API for appending a new device to the domain
The gvir_config_domain_set_devices API replaces the entire
list of devices, but when building up a config incrementally
it is useful to append device one at a time. Thus we need
a gvir_config_domain_add_device method
* libvirt-gconfig/libvirt-gconfig-domain.c,
libvirt-gconfig/libvirt-gconfig-domain.h,
libvirt-gconfig/libvirt-gconfig.syms: gvir_config_domain_add_device
Add API for setting virt type
Add gvir_config_domain_set_virt_type and
gvir_config_domain_virt_type_get_type
* libvirt-gconfig-domain.c, libvirt-gconfig-domain.h,
libvirt-gconfig.h, libvirt-gconfig.sym: Add new APIs
Ensure internal copy of URI is not NULL
It is permissible to pass in NULL for a URI to libvirt, which
causes it to probe for a supported driver. In such a case we
should populate priv->uri with the resulting probed URI after
opening the connection
* libvirt-gobject/libvirt-gobject-connection.c: Populate URI
after opening connection, if NULL
Add support for setting <filesystem> elements
Create a new GVirConfigDomainFilesys object for dealing with
the <filesystem> element.
* libvirt-gconfig-domain-filesys.c, libvirt-gconfig-domain-filesys.h,
Makefile.am, libvirt-gconfig.sym, libvirt-gconfig.h: New
GVirConfigDomainFilesys object
* libvirt-gconfig-object.c, libvirt-gconfig-object-private.h: Add
gvir_config_object_delete_node for removing an XML node
Add setters for kernel/ramdisk/cmdline/init in GVirConfigDomainOS
Enable setting of the <kernel>, <ramdisk>, <cmdline> and <init>
elements inside <os>...</os>.
* libvirt-gconfig/libvirt-gconfig-domain-os.c,
libvirt-gconfig/libvirt-gconfig-domain-os.h,
libvirt-gconfig/libvirt-gconfig.sym: Add new setters
2011-11-30 Christophe Fergeau <cfergeau@redhat.com>
Fix potential race in GVirObjectConnection::domain_event_cb
This method starts by looking up a domain in priv->domains, and later,
depending on the kind of event that occurred, it may remove this
domain from priv->domains. While the individual operations (lookup,
removal) are protected by priv->lock, there is no guarantee that the
looked up domain and even priv->domains will stay unchanged when
priv->lock isn't held.
In particular, gvir_connection_close will destroy priv->domains which
will unreference all the domains it contains (potentially destroying
them too), and gvir_connection_fetch_domains will change priv->domains
value.
To avoid these issues, this commit takes a reference on priv->domains
so that it doesn't get away behind our back, and it takes a reference
on the looked up domain too to ensure it stays alive for the duration
of domain_event_cb run.
Fix memory leaks in test-domain-create
Before the introduction of GVirConfigXmlDoc, we couldn't
destroy the objects deriving from GVirConfigObject without
memory corruption. Now that we have GVirConfigXmlDoc, we can
make sure the memory we allocate for our various
GVirConfigObject instances are properly cleaned up.
Return a GVirConfigObject from gvir_config_object_replace_child
This makes it possible to use the other GVirConfigObject helpers
with the new child, and hides libxml from one more place in our API.
Return a GVirConfigObject from gvir_config_object_add_child
This makes it possible to use the other GVirConfigObject helpers
with the new child, and hides libxml from one more place in our API.
Simplify GVirConfigDomainGraphicsSpice creation
Now that we have gvir_config_object_set_attribute, we can use
the gvir_config_object_new{_from_xml} helpers.
Simplify GVirConfigDomainInterfaceNetwork creation
Now that we have gvir_config_object_set_attribute, we can use
the gvir_config_object_new{_from_xml} helpers.
Use gvir_config_object_set_attribute where appropriate
Add gvir_config_object_set_attribute{_with_type}
Use gvir_config_object_attach where appropriate
This allows us to properly refcount the underlying xmlDocPtr (and
the associated xmlNodes) to avoid trying to free twice the same
xmlNodes when disposing of GVirConfigObject referencing the same
nodes.
Add gvir_config_object_attach
It's needed to be able to keep track of references on the underlying
GVirConfigXmlDoc when building a bigger xml tree from smaller
separate xml nodes.
GVirConfigObject is no longer an abstract type
Since we want to use GVirConfigObject as a simple wrapper over
xmlNodePtr, we need to be able to create instances of this type for
"arbitrary" xml nodes.
Set GVirConfigObject::doc during object creation
Now that we have a refcounted GVirConfigXmlDoc type, make sure we use
it when creating objects deriving from GVirConfigObject.
Add GVirConfigObject::doc property
It will be used to refcount the xml data and make sure we only
free it when all references have went away.
Add GVirConfigXmlDoc type
This class derives from GObject and wraps an xmlDocPtr. It will be
useful to refcount xmlDoc so that it can be shared between multiple
GVirConfigObject instances.
Fix gvir_config_domain_clock_set_variable_offset
It was creating an extra <clock> node as a child of the "main" one
which is not what was intended
2011-11-30 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Remove transient domain reference on shutdown
Rely on libvirt API to detect transient domains
2011-11-29 Christophe Fergeau <cfergeau@redhat.com>
gir: use libraries from build tree, not installed ones
If we don't explicitly mention path to our uninstalled libraries
to g-ir-scanner, it will use installed libvirt-* libraries instead
of the ones we just built to run a binary during the generation of
the gir file. However this binary will have been compiled with the
uninstalled ones,
This is an issue if the installed libraries are not ABI compatible
with the uninstalled one, and will cause a compile failure because
the binary will fail to run.
This fix has been suggested by Colin Walters (gobject-introspection
maintainer).
gir: Use --pkg=libxml-2.0 instead of LIBXML2_CFLAGS
g-ir-scanner has a standard way of getting the flags for libraries
providing .pc files, this commit uses this --pkg flag for libxml
instead of using LIBXML2_CFLAGS we computed ourselves.
Fix make distcheck
Do not ship autogenerated glib enum definitions in the tarball,
otherwise they won't get regenerated in the build directory when
using a tarball, and rules trying to find these files in the build
directory will fail (eg the gir generation rule)
Cleanup GIR generation rules
Remove some redundant arguments (--pkg seems unneeded when
--include is used), most include paths are unneeded, ...
Fix GIR generation
Overriding PKG_CONFIG_PATH when generating LibvirtGObject-1.0.gir
is wrong since this means that if glib/gio/... are installed in
a prefix that is not one of the default pkg-config paths, then
they won't be found. PKG_CONFIG_PATH is overridden so that
g-ir-scanner can find LibvirtGLib-1.0 and LibvirtGConfig-1.0 in
the build tree. Since g-ir-scanner provides --include-uninstalled
for that purpose, use that instead.
Link libvirt-gobject with gthread
It uses GMutex so it needs to be linked with gthread
Add various missing packages to libvirt-gobject-1.0.pc
2011-11-29 Daniel P. Berrange <berrange@redhat.com>
Ensure debug defaults to off for all glib versions
The previous patch changed all code to directly call g_debug().
This relies on the fact that glib >= 2.31 defaults to not
printing debug messages. The result is that for older glib we
now pollute the stderr with debug messages.
This introduces 3 env vars for controlling libvirt debug,
though on glib >= 2.31 the standard G_LOG_MESSAGES env can
be used instead.
* libvirt-glib/libvirt-glib-main.c: Check for LIBVIRT_GLIB_DEBUG
env var
* libvirt-gobject/libvirt-gobject-main.c: Check for
LIBVIRT_GOBJECT_DEBUG env var
* libvirt-gconfig/libvirt-gconfig-main.c: Check for
LIBVIRT_GCONFIG_DEBUG env var
* libvirt-gconfig/libvirt-gconfig-main.h, libvirt-gconfig/libvirt-gconfig.h,
libvirt-gconfig/libvirt-gconfig.sym: Add new files
* libvirt-gconfig/Makefile.am, libvirt-glib/Makefile.am,
libvirt-gobject/Makefile.am: Set a default G_LOG_DOMAIN to
allow filtering the library messages
2011-11-29 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Remove now redundant debug system
GLib >= 2.31 filters debug messages by default now[1] and provides ways
to output debug log from selected domains only. This patch won't be any
good without defining proper fine-grained log domains though.
http://blogs.gnome.org/mclasen/2011/11/09/better-logging/
Ensure 'domain-added' signal on transient domain creation
2011-11-29 Daniel P. Berrange <berrange@redhat.com>
Convert GVirInputStream/GVirOutputStream over to use watches
Since virStreamEventAddCallback only allows a single callback
to be registered, GVirInputStream/GVirOutputStream should not
use that directly. Instead they should use the gvir_stream_add_watch
function
* libvirt-gobject/libvirt-gobject-input-stream.c,
libvirt-gobject/libvirt-gobject-output-stream.c: Convert to
use gvir_stream_add_watch
Cleanup streams coding style violations
Add missing exports of GVirStream APIs
* libvirt-gobject/libvirt-gobject.sym: Export gvir_stream_receive,
gvir_stream_send, gvir_stream_send_all
Add support for creating watches on streams
The GIO GInputStream/GOutputStream async model for I/O does not
work for working with non-blocking bi-directional streams. To
allow that to be done more effectively, add an API to allow
main loop watches to be registered against streams.
Since the libvirt level virStreamEventAddCallback API only allows
a single callback to be registered to a stream at any time, the
GVirStream object needs to be multiplexing of multiple watches into
a single libvirt level callback.
Watches can be removed in the normal way with g_source_remove
* libvirt-gobject/libvirt-gobject-stream.c,
libvirt-gobject/libvirt-gobject-stream.h,
libvirt-gobject/libvirt-gobject.sym: Add gvir_stream_add_watch
Document some of the coding style conventions required
* HACKING: Add notes on coding style conventions
2011-11-24 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Bump version
2011-11-24 Daniel P. Berrange <berrange@redhat.com>
Fix VPATH build wrt enum types
* libvirt-gconfig/Makefile.am: Built files should live in builddir
* libvirt-gconfig/libvirt-gconfig.sym: Export enum types
2011-11-23 Christophe Fergeau <cfergeau@redhat.com>
Don't memset GObject private data to 0
The GObject private data allocated with g_type_class_add_private
will be automatically zero'ed when the GObject is created so we
don't need to memset it to 0.
Add GVirConfigDomainVideo
--
v2: use g_return_if_fail to test function args for sanity
v3: rename to GVirConfigDomainVideo
Add basic GVirConfigDomainGraphicsSpice
Only the (non-TLS) port can be set on it
--
v2: rename to GVirConfigDeviceGraphicsSpice
fix node creation (missing "type" attribute)
derive GVirConfigDeviceGraphicsSpice from GVirConfigDeviceGraphics
use g_return_if_fail to test function args for sanity
v3: rename to GVirConfigDomainGraphicsSpice
Add GObject boilerplate for GVirConfigDomainGraphics
This is an abstract type which will be used as a base class for the
various type of <graphics> devices (spice, vnc, ...)
--
v3: rename to GVirConfigDomainGraphics
Add GVirConfigDomainInput
--
v2: use enum for input bus type
use g_return_if_fail to test function args for sanity
v3: rename to GVirConfigDomainInput
Add <network> to creation test
Add gvir_config_domain_interface_network_set_source
Add GVirConfigDomainInterfaceNetwork
--
v2: use g_return_if_fail to test function args for sanity
v3: rename to GVirConfigDomainInterfaceNetwork
Add GObject boilerplate for GVirConfigDomainInterface
This base class is mainly useful as a generic type when we manipulate
list of interfaces regardless of their actual type.
--
v3: rename to GVirConfigDomainInterface since GVirConfigInterface
has a different purpose
Add test for adding a disk device
More GVirConfigDomainDisk setters
--
v2: fix gvir_config_device_disk_set_source
use g_return_if_fail to test function args for sanity
Add gvir_config_object_add_child
It's similar to gvir_config_object_replace_child except that if the
current node already has a child with the correct name, it returns
the existing child instead of replacing it.
--
v2: instead of adding an argument to gvir_config_object_new_child,
split the function in 2 separate ones, gvir_config_object_add_child
and gvir_config_object_replace_child.
use g_return_if_fail to test function args for sanity
Add gvir_config_domain_set_devices
--
v2: use g_return_if_fail to test function args for sanity
Add various GVirConfigDomainDisk setters
--
v2: use g_return_if_fail to test function args for sanity
Add gobject boilerplate for GVirConfigDomainDisk
--
v3: rename to GVirConfigDomainDisk
Add gobject boilerplate for GVirConfigDomainDevice
This is an abstract type which will be used as a base class for
all objects stored in the <devices> section of a domain.
--
v3: rename to GVirConfigDomainDevice
Add GVirConfigDomain::vcpu
Add test for GVirConfigDomainOs
Implement gvir_config_domain_set_os
--
v2: use g_return_if_fail to test function args for sanity
Add some GVirConfigDomainOs setters
--
v2: merged several related commits
use safer g_strcmp0 for string comparison
use g_return_if_fail to test function args for sanity
Add gobject boilerplate for GVirConfigDomainOs
--
v3: rename from GVirConfigOs to GVirConfigDomainOs
Create clock object in domain creation test
Add gvir_config_genum_get_nick helper
We will often need to convert from an enum to its string
representation, add an helper for that to avoid duplicating that
code.
--
v2: moved before gvir_config_clock_set_offset implementation since
it needs it
Use glib-mkenums to register enums with glib
We don't currently have any enum in our API, but we will need some.
This commit adds the generation of libvirt-gconfig-enum-types.[ch]
using glib-mkenums. These files will register the various enums
that will get added to libvirt-gconfig header files with glib.
--
v2: move libvirt-gconfig-enum-types.h to HEADERS in Makefile.am so that
it's installed
Add gvir_config_domain_set_clock
The implementation is likely to need to be completed later. We
might want to store pointers from GVirConfigDomain to the associated
GVirConfigDomainClock, from GVirConfigDomainClock to the GVirConfigDomain
that contains it. Since I'm not sure yet if they will be needed, I chose
to keep the implementation simple.
--
v2: use g_return_if_fail to test function args for sanity
Add some GVirDomainConfigClock setters
--
v2: use g_return_if_fail to test function args for sanity
v3: fix typo in gvir_config_domain_clock_set_variable_offset
("timezone" -> "adjustment")
2011-11-22 Christophe Fergeau <cfergeau@redhat.com>
Add gobject boilerplate for GVirConfigDomain{Clock,Timer}
--
v3: rename from GVirConfig* to GVirConfigDomain*
Use new helpers to simplify gvir_config_domain_set_features
Add gvir_config_object_replace_child helper
This allows us to factor the code to add an XML node to a config
object.
--
v2: use g_return_if_fail to test function args for sanity
replace object
Make some GVirConfigObject helpers private
At this point, I'm not sure how/if the library user should be able
to directly manipulate the XML data wrapped by a GVirConfigObject.
It's preferrable to hide this API from the user until we have a
clearer idea how to expose it.
Remove unused prototype for gvir_config_object_parse
There is no corresponding implementation so no need to keep this
prototype.
Remove unneeded blank line in *_class_init
2011-11-22 Daniel P. Berrange <berrange@redhat.com>
Update NEWs with more 0.0.2 release notes
Update COPYING file to have newer FSF address
Update RPM specfile with latest Fedora review feedback
Don't reference GError **err parameter if it is NULL
Ensure domains & pools hash tables in connection are non-NULL
Add API for creating transient domains
Uncomment & fix code for returning config objects
Change all flags from guint64 to guint to match libvirt type
Add support for writing to streams
2011-11-22 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Release 0.0.2
2011-11-21 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add API to redefine an existing domain
2011-11-18 Guido Günther <agx@sigxcpu.org>
Adjust example to pygobject-3.0
which doesn't allow to "import gtk" anymore. Use the gir version
instead.
2011-11-17 Daniel P. Berrange <berrange@redhat.com>
Add libxml-2.0 to libvirt-gconfig-1.0.pc
The libvirt-gconfig header files depend on the libxml header
files, so this must be expressed in the pkgconfig file to
ensure the include path for libxml2 gets added to the compiler
args
2011-11-16 Marc-André Lureau <marcandre.lureau@redhat.com>
Expicitely call virInitialize() to avoid connection races
Credits to Daniel for pointing out the solution.
2011-11-16 Daniel P. Berrange <berrange@redhat.com>
Fix typo in libvirt-gobject-1.0.pc.in
Add missing deps on libxml2-devel & libtool. Don't introspect on RHEL6
Add download / mailing list links to README
2011-11-16 Nirbheek Chauhan <nirbheek@gentoo.org>
Fix parallel build with vala bindings
2011-11-16 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Release 0.0.1
Add some basic information to README
2011-11-15 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Also distribute private headers
Private headers just shouldn't be installed but still distributed as
they are required during the build. Fixes `make distcheck`.
2011-11-14 Marc-André Lureau <marcandre.lureau@redhat.com>
Use G_DEFINE_BOXED_TYPE for boxed types
Copy G_DEFINE_BOXED_TYPE from GObject 2.26+
Add GVirDomainDisk
Add GVirDomainInterface
Add GVirDomainDevice abstract class
2011-11-08 Christophe Fergeau <cfergeau@redhat.com>
Use new creation helpers everywhere
Use the new gvir_config_object_new{_from_xml} in all classes
inheriting from GVirConfigObject. This simplifies the code in the
_new methods creating empty objects. This commit also adds
_new_from_xml methods to all these objects.
Fix creation of empty XML document
It's not enough to assign xmlDocPtr::children to set the
document root, xmlDocSetRootElement must be used instead.
Add gvir_config_object_new{_from_xml} helpers
This factors the code that is repeated in the _new methods of
all classes deriving from GVirObject
Add GVirConfigDomain::features
Add GVirConfigDomain::memory
Validate document in parsing test
Add a call to gvir_config_object_validate in test-domain-parse.c
However at the moment this call is purely informative since none
of the tests is a valid domain XML description.
Add test-domain-duplicate.xml which currently fails
This test has 3 duplicate "name" nodes in the domain XML, I don't
know what the right behaviour is in this case :)
Add gvir_config_object_set_node_content
It's used to set the content of a node in a GVirConfigObject to
a given value, and will replace any existing node with the same
value.
Add gvir_config_object_get_node_content
There will be quite a few getter functions returning a string
contained in one of the nodes of a GVirConfigObject, so better to
make it a one-liner to achieve this.
Remove GVirConfigObject::doc
Now that the parsing is done before creating the object, this
member is no longer useful. Moreover, it's redundant with the ::node
member. Remove it and rely on always having an xmlNodePtr available
to represent the config object.
Remove GError argument from GVirConfigObject::node getter
Since this function no longer tries to do XML parsing, there is
no error to report.
Only do XML parsing when creating config objects
This commit changes gvir_config_domain_new_from_xml not to operate
on an existing object. This makes it possible to call it to create
an appropriate xmlNodePtr object which can then be used to construct
an object derived from GVirConfigObject. This will also makes it
possible to remove GVirConfigObject::doc in a subsequent commit.
Remove xml parsing from gvir_config_*_new functions
These functions now create empty config objects to be consistent
with what gvir_config_domain_new does.
Remove GVirConfigObject::docHandle
GVirConfigObject also contains an xmlNodePtr which is more useful
since it indicates the position of the current config object in
the source XML file. Since xmlNode has a 'doc' member, having
both an xmlNodePtr and an xmlDocPtr in GVirConfigObject is
redundant.
Add domain creation/parsing test
Use gvir_config_object_to_xml
s/gvir_config_object_get_doc/gvir_config_object_to_xml/
Prefer gvir_config_object_to_xml over gvir_config_object_get_doc
since the latter will be removed soon.
Add gvir_config_object_to_xml
Make the GVirConfigDomain::name property writable
Implement gvir_config_domain_set_name
Add gvir_config_domain_new to create an empty domain
Rename gvir_config_domain_new
Rename it to gvir_config_domain_new_from_xml since it takes an
XML string as input. gvir_config_domain_new will be used to create
a new empty domain.
Add GVir::Config::Domain::name property
For now, it's read-only, but is exposed as a gobject property too.
Add GVirConfigObject::node property
This property stores the XML node corresponding to the current
configuration object in the XML tree. When creating configuration
objects from a XML string, the XML file will be lazily loaded, and
this property will be set.
Add getters for GVirConfig xmlNode and xmlDoc
They will be useful in subclasses to access the parsed document,
and to external users needing to directly interact with the
generated XML.
gvir_config_object_parse: don't parse empty documents
Report an error when trying to parse the current XML document
associated with the GVirConfig object when no document has been
set.
Add helpers in libvirt-gconfig-helpers.[ch]
These helper functions will be useful later on. These functions are
not made available to the library user since we don't want to expose
too much our libxml internals.
2011-11-07 Daniel P. Berrange <berrange@redhat.com>
Add script for automatically generating the changelog during make dist
Update .gitignore rules to include docs & other misc files
Update AUTHORS file content
2011-11-07 Nirbheek Chauhan <nirbheek@gentoo.org>
Update to min libvirt 0.9.4 & fix invocation of vapigen
libvirt-0.9.4 is needed for at least VIR_DOMAIN_EVENT_SUSPENDED_RESTORED
$VAPIGEN from AC_PATH_PROG should be used instead of the raw binary `vapigen`
otherwise it's not possible to override the vapigen binary to be used.
* configure.ac: Use $VAPIGEN, and s/0.5.0/0.9.4/
* libvirt-glib.spec.in, mingw32-libvirt-glib.spec.in: s/0.5.0/0.9.4/
2011-11-04 Daniel P. Berrange <berrange@redhat.com>
Ensure enum header is installed
Fix typo in configure.ac
2011-11-03 Daniel P. Berrange <berrange@redhat.com>
Fix compiler / linker flags passed to gtk-doc
2011-11-03 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Ask gtkdoc-scan to generate the sections file
This frees us from maintaining the sections file.
2011-11-03 Daniel P. Berrange <berrange@redhat.com>
Don't include GTK docs in mingw32 RPM
Add documentation to -devel RPMs
Fix previous broken change to install header files
Check vapigen supports --metadatadir in configure.ac
Disable gtk-doc in automated builds
Ensure libvirt-gobject-1.0.deps is included in dist
Fix passing of generated enum files to g-ir-scanner in VPATH builds
Annotation unused variables in example program
Ensure make distcheck enables gtkdoc and introspection
2011-11-01 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Generate docs
This patch adds gtk-doc-based documentation. The generated docs aren't
very complete (or even correct) but this is a good start.
2011-10-27 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Correct 2 signal signatures
Async API to build & start storage pools
Add API to build & start storage pools
2011-10-26 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add gvir_connection_create_storage_pool()
API to create new storage pools.
2011-10-25 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Set GError even if libvirt error is unknown
2011-10-21 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Add 2 forgotten functions to libvirt-gobject.sym
2011-10-21 Marc-André Lureau <marcandre.lureau@redhat.com>
Fix vapigen on uninstalled environment
2011-10-20 Marc-André Lureau <marcandre.lureau@redhat.com>
Fix GIR scanner on uninstalled environment
2011-10-19 Marc-André Lureau <marcandre.lureau@redhat.com>
Fix wrong signals arguments
Add gvir_domain_resume()
A binding for virDomainResume().
Remove vir_ prefix from default signal handler
Let's keep the signal and default signal handler name in sync.
gobject signals are generally not namespaced this way, removing
this prefix makes things look a bit nicer.
Add vapi bindings generation
2011-10-14 Christophe Fergeau <cfergeau@redhat.com>
Use gvir-stream as GVirStream quark name
The previous vir-g-stream name isn't consistent with the naming of
all the other quarks used in libvirt-glib
Remove vir- prefix from signals
gobject signals are generally not namespaced this way, removing
this prefix makes things look a bit nicer.
2011-10-13 Marc-André Lureau <marcandre.lureau@redhat.com>
Don't leak virStreams, take the reference
Without this change, after virStreamNew() and
g_value_dup_boxed() it will have refcnt = 2
and will leak when GVirStream is destroyed.
2011-10-11 Marc-André Lureau <marcandre.lureau@redhat.com>
The input stream is owned by GVirStream, don't ref it
Fail gracefully when hashtables are NULL
Instead of the message:
GLib-CRITICAL **: g_hash_table_get_values: assertion `hash_table !=
NULL' failed
2011-10-06 Christophe Fergeau <cfergeau@redhat.com>
Only call gvir_error_new after failed libvirt calls
gvir_error_new is only meant to be used right after a failed
libvirt function call, in other cases we should be calling
g_error_new directly.
Don't use empty message when building a GError
After testing that 'message' is NULL, gvir_xml_error_new_literal
is using it to build a GError. What was meant was to use
xerr->message.
Don't use empty message when building a GError
After testing that 'message' is NULL, gvir_error_new_literal
is using it to build a GError. What was meant was to use
verr->message.
2011-10-03 Marc-André Lureau <marcandre.lureau@redhat.com>
event: remove timeout and handle from arrays
Otherwise, it will crash next time it goes find().
==9856== Invalid read of size 4
==9856== at 0x84E4888: gvir_event_timeout_find (libvirt-glib-event.c:293)
==9856== by 0x84E48E4: gvir_event_timeout_update (libvirt-glib-event.c:308)
==9856== by 0x31AB04BBDB: virEventUpdateTimeout (event.c:122)
==9856== by 0x31AB148758: virNetClientStreamEventTimerUpdate (virnetclientstream.c:81)
==9856== by 0x31AB14991C: virNetClientStreamEventAddCallback (virnetclientstream.c:471)
==9856== by 0x31AB12944F: remoteStreamEventAddCallback (remote_driver.c:3484)
==9856== by 0x31AB108EAC: virStreamEventAddCallback (libvirt.c:14036)
...
==9856== Address 0x143be760 is 0 bytes inside a block of size 40 free'd
==9856== at 0x4A06928: free (vg_replace_malloc.c:427)
==9856== by 0x84E4AD6: gvir_event_timeout_remove (libvirt-glib-event.c:361)
==9856== by 0x31AB04BC2C: virEventRemoveTimeout (event.c:136)
==9856== by 0x31AB149B24: virNetClientStreamEventRemoveCallback (virnetclientstream.c:521)
==9856== by 0x31AB129566: remoteStreamEventRemoveCallback (remote_driver.c:3525)
==9856== by 0x31AB10918F: virStreamEventRemoveCallback (libvirt.c:14114)
...
Turn GVirStream into a GIOStream
Allows to read async from a stream with GVirInputStream.
This is modelled after GSocket.
enums: fix incorrect prefix strip
GVIR_TYPE_VIR_FOO -> GVIR_TYPE_FOO
gir: fix introspection of asyncs and array delegate
For some weird reason, gir doesn't like "opaque" for closure data,
but only "user_data".
delay event handle/timeout freeing to avoid dead lock
Can be reproduced with the updated test.
Daniel commented:
"the libvirt default event loop already does a very similar
thing, since we need to be re-entrant safe."
build: Add missing <package> and <c:include> in gir
This is required for generating source-level bindings, for vala
Silence a compilation warning
Connect a bunch of domain event to signals
Make get_uuid() return a const string
The string is not so large, we avoid fragmentation and duplication (especially in hashtable)
Update GVirConnection signals
Add a few GVirDomain detailled signals
Plug a memleak
Add .mailmap for common aliases
Register event using GOnce to avoid multiple initializations
2011-10-03 Marc-André Lureau <marcandre.lureau@gmail.com>
doc: add some missing return value documentation
2011-10-02 Guido Günther <agx@sigxcpu.org>
Explicitly link conn-test example against libgobject
Otherwise the build fails with:
/usr/bin/ld: conn_test-conn-test.o: undefined reference to symbol 'g_type_check_instance_cast'
/usr/bin/ld: note: 'g_type_check_instance_cast' is defined in DSO /usr/lib/libgobject-2.0.so.0 so try adding it to the linker command line
/usr/lib/libgobject-2.0.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
2011-09-28 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
API for storage pool volume management
Actually provide gvir_storage_vol_get_path()
This was only declared in header previously but not implemented.
2011-09-27 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Refactor two very huge functions a bit
Plug a leak
Remove redundant 'Config' in GIR identifiers
libvirt-gconfig is in a separate namespace than libvirt-gobject so there
is not reason to expose 'Config' part of identifiers to high-level
languages.
Correct some more C&P mistakes
Correct some C&P mistakes
API to deal with storage pool(s)
Add API to fetch, list, retrieve & find storage pool(s) on a connection.
Ability to create new domains
2011-09-26 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
Remove redundant empty line
Fix some obvious c&p mistakes
2011-09-16 Zeeshan Ali (Khattak) <zeeshanak@gnome.org>
GVirConfigObjct should be abstract
2011-08-10 Daniel P. Berrange <berrange@redhat.com>
Fix typo in include path s/buildir/builddir/
2011-07-14 Marc-André Lureau <marcandre.lureau@gmail.com>
Remove useless g_print debugging message
Add gvir_domain_screenshot
Add a binding for virStreamPtr as GVirStream
Fix incorrect object freeing
The code updating object handles incorrectly used g_object_unref
instead of virDomainFree or equivalent method
Expose virConnectPtr handle as a property
The GVirConnection object needs to have a 'handle' property
which exposes the virConnectPtr handle
Fix gi-scanner warnings by adding missing annotation
Add missing annotations, remove currently unsupported 'default 0'
annotation and comment out unimplemented methods
Introspection: Update to new g-i command syntax
Add --warn-all, use --identifier-prefix and
--symbol-prefix (--strip-prefix is deprecated).
2011-07-14 Daniel P. Berrange <berrange@redhat.com>
Fix error quark strings
Error quark strings should be of the form 'gvir-storage_pool'
not 'vir-g-storage_pool'
Add validation of XML documents against RNG
Implement the gvir_config_object_validate using libxml2's RNG
schema validation APIs.
Add a base set of wrapper objects for every libvirt object
Create a new subclass of GVirObject for every libvirt
managed object type. Also update the GVirConnection refresh
code to be threadsafe
Add basic object configuration classes
Every libvirt object needs to have a corresponding object for
managing documents in the object's XML schema. For this task
create a subclass of GVirConfigObject for each libvirt object.
2011-06-07 Daniel P. Berrange <berrange@redhat.com>
Add note reminding people how to run from the source tree
Split the XML config mgmt objects into a separate libvirt-gconfig library
The XML configuration management objects are useful even for apps
which don't wish to use the object management classes, eg for people
using the CIM/SNMP/AMQP agents to talk to libvirt, instead of the
native libvirt API. Split them out into a separate libvirt-gconfig
library, which does not link to libvirt.so
Also split the RPM up into libvirt-glib, libvirt-gconfig and
libvirt-gobject to match the library names
2011-02-11 Daniel P. Berrange <berrange@redhat.com>
Add missing LIBVIRT_CFLAGS for building exmaple programs
2010-09-10 Daniel P. Berrange <berrange@redhat.com>
Allow domain fetch to run async. Allow connection open cancel
Allow the domain fetch operation to be run asynchronously and
be cancelled at any time. Also allow synchronous connection
open to be cancelled.
* examples/conn-test.js, examples/conn-test.py: Make tests
mirror images of each other
* libvirt-gobject/libvirt-gobject-connection.c,
libvirt-gobject/libvirt-gobject-connection.c: Allow async
domain fetch & connection open cancel
* libvirt-gobject/libvirt-gobject-domain.c,
libvirt-gobject/libvirt-gobject-domain.h: Add flags params
Introduce config manager class and connection manager
Introduce a GVirXmlConfig class for representing an object's
XML configuration. Subclass it with GVirDomainConfig.
Introduce a GVirManager class to look after a list of
connection objects.
* libvirt-gobject/libvirt-gobject-connection.c: Add annotation
to allow null opaque param
* libvirt-gobject/libvirt-gobject-connection.h: Remove redundant
includes
* libvirt-gobject/libvirt-gobject-domain-config.c,
libvirt-gobject/libvirt-gobject-domain-config.h: New class
for domain configs
* libvirt-gobject/libvirt-gobject-domain.c,
libvirt-gobject/libvirt-gobject-domain.h: Return a
GVirDomainConfig instead of the direct char *xml string
* libvirt-gobject/libvirt-gobject-main.c,
libvirt-gobject/libvirt-gobject-main.h: Fix up includes
* libvirt-gobject/libvirt-gobject-manager.c,
libvirt-gobject/libvirt-gobject-manager.h: New class
for managing a list of connections
* libvirt-gobject/libvirt-gobject-xml-config.c,
libvirt-gobject/libvirt-gobject-xml-config.h: Generic
base class for handling XML configs
* libvirt-gobject/libvirt-gobject.h: Add new includes
* libvirt-gobject/libvirt-gobject.sym: Add new symbols
* libvirt-glib/Makefile.am, libvirt-gobject/Makefile.am: Make
g-ir-scanner run quietly
* examples/conn-test.py, examples/conn-test.js: More examples
* configure.ac: Silent build
2010-09-09 Daniel P. Berrange <berrange@redhat.com>
Fix pkgconfig files and include header locations
To avoid potential version clashes, the headers should be
installed into /usr/include/libvirt-glib-1.0/libvirt-glib
instead of just /usr/include/libvirt-glib-1.0. The pkgconfig
file should then use -I/usr/include/libvirt-glib-1.0
* Makefile.am, configure.ac: Add libvirt-gobject-1.0.pc.in
* libvirt-glib/Makefile.am, libvirt-gobject/Makefile.am: Fix
include header directory
* mingw32-libvirt-glib.spec.in, libvirt-glib.spec.in: Add
libvirt-gobject library
* libvirt-glib.pc.in: Rename to libvirt-glib-1.0.pc.in
2010-08-06 Daniel P. Berrange <berrange@redhat.com>
Make GIR tools less verbose
Remove the '-v/--verbose' flag from GIR tools & remove unused
include paths
Add API for accessing URI
Add gvir_connection_get_uri() method. Fix lookup based on URI.
Fix version name in symbols version file
Flesh out GVirDomain class
Add an API for converting a virErrorPtr into a GError *.
Flesh out the GVirDomain class with basic constructor and
methods.
Add APIs to GVirConnection class to allow fetching of
GVirDomain objects
2010-07-27 Daniel P. Berrange <berrange@redhat.com>
Change method/class prefix to gvir/GVir
GObject introspection doesn't do so well at generating sensible
method/class names if methods and classes use a different
prefix (vir_g vs VirG). It can only cope with changes in case.
Change the prefix to be 'gvir' (methods) and 'GVir' (classes)
Provide a non-async open method for simple usage
Not all apps require a full async open API call, so provide a
blocking version as well. Renaming the async version to have
an _async suffix
2010-07-26 Daniel P. Berrange <berrange@redhat.com>
Add example program using javascript
Register the event loop when loading libvirt gobject library
Add some gobject introspection annotations
Only initialize threading if it isn't already initialized
Add libvirt-gobject library wrapping libvirt objects
The libvirt-gobject-1.0.la library provides a wrapper around
the libvirt API that exposes all its objects as GObject classes.
This allows integration with the gobject signal system and gio
async callback APIs.
Re-arrange source to put it all under libvirt-glib/ subdir
Remove the src/ and include/ directories, merging them into
a single libvirt-glib to more closely align with standard
glib style layout
Add support for GObject Introspection
Generate GObject introspection data for libvirt-glib, also make
the library be versioned.
Ensure event callbacks are threadsafe
Take a global lock whenever changing any event callbacks to
ensure thread safety
Rename APIs to use lowercase + underscores to match glib style
The libvirt style is virEventRegister while the GLib style is
vir_g_event_register. This switches from the former to the
latter so the API looks nicer to people familiar with GLib.
2009-08-03 Daniel P. Berrange <berrange@redhat.com>
Add missing details argument to python demo (Guido Günther)
* examples/event-test.py: Add 'detail' argument
Fix import of gtk module in python demo (Guido Günther)
* examples/event-test.py: Change import pygtk to import gtk
Switch .hgignore to .gitignore
2009-05-19 Daniel P. Berrange <berrange@redhat.com>
Fix recording of timers/handles
2008-11-28 Daniel P. Berrange <berrange@redhat.com>
Add mingw32 specfile, and fix libvirt version to 0.5.0
Fix mistaken use of POLL constants
2008-11-25 Daniel P. Berrange <berrange@redhat.com>
Fix pkgconfig install path
Use g_debug for logging
Include event detail in printout
Remove bogus configure flag
Update for changes in public API to add freefunc
2008-11-04 Daniel P. Berrange <berrange@redhat.com>
Fix FD event constant usage, and implement FD remove event
Add python binding to glib & example program
2008-10-19 Daniel P. Berrange <berrange@redhat.com>
Initial checkin