update_engine: Migrate update_engine_client to chrome DBus bindings.
chromeos-dbus-bindings now generates the proxy inteface that we can use
to interact with update_engine DBus daemon. This CL migrates
update_engine_client to use this proxy insterface instead of dbus-glib,
removing all glib dependencies from update_engine_client.
There's a small functionallity change in the --follow flag. With this patch,
instead of polling the status every 5 seconds, we use the signals sent by
update_engine (about once a second) to monitor the update status.
BUG=chromium:419827
TEST=deployed and tested manually most flags of update_engine_client and its interaction with update_engine. Specifically, the blocking functionality was also tested.
Change-Id: Id27922cb1cdcef750d623ce4f816fbc5ecbc2354
Reviewed-on: https://chromium-review.googlesource.com/280878
Trybot-Ready: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Deymo <deymo@chromium.org>
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Deymo <deymo@chromium.org>
diff --git a/update_engine.gyp b/update_engine.gyp
index 17cd718..e9e5a63 100644
--- a/update_engine.gyp
+++ b/update_engine.gyp
@@ -60,19 +60,6 @@
},
# D-Bus glib bindings.
{
- 'target_name': 'update_engine-dbus-client',
- 'type': 'none',
- 'variables': {
- 'dbus_glib_type': 'client',
- 'dbus_glib_out_dir': 'include/update_engine',
- 'dbus_glib_prefix': 'update_engine_service',
- },
- 'sources': [
- 'dbus_bindings/org.chromium.UpdateEngineInterface.xml',
- ],
- 'includes': ['../common-mk/dbus_glib.gypi'],
- },
- {
'target_name': 'update_engine-dbus-server',
'type': 'none',
'variables': {
@@ -216,15 +203,8 @@
{
'target_name': 'update_engine_client',
'type': 'executable',
- 'dependencies': [
- 'update_engine-dbus-client',
- ],
'variables': {
'exported_deps': [
- 'dbus-1',
- 'dbus-glib-1',
- 'glib-2.0',
- 'gthread-2.0',
'libchrome-<(libbase_ver)',
'libchromeos-<(libbase_ver)',
],
@@ -238,8 +218,20 @@
},
},
'sources': [
- 'glib_utils.cc',
'update_engine_client.cc',
+ ],
+ 'actions': [
+ {
+ 'action_name': 'update_engine-dbus-proxies',
+ 'variables': {
+ 'dbus_service_config': 'dbus_bindings/dbus-service-config.json',
+ 'proxy_output_file': 'include/update_engine/dbus_proxies.h'
+ },
+ 'sources': [
+ 'dbus_bindings/org.chromium.UpdateEngineInterface.xml',
+ ],
+ 'includes': ['../common-mk/generate-dbus-proxies.gypi'],
+ },
]
},
# server-side code. This is used for delta_generator and unittests but not