From 30c2790aa4a712e4cc834d43408d75803db47861 Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 21 Nov 2016 13:44:08 +0100 Subject: [PATCH] kerneldevice,generic: load virtual devices without default rules This is so that "make check" doesn't depend on having the rule files installed in the default udev rules directory, which currently would break the build: TEST: test-service-generic... (pid=2601) /MM/Service/Generic/enable-disable: Activating service name='org.freedesktop.ModemManager1' Successfully activated service 'org.freedesktop.ModemManager1' ** (/home/aleksander/Development/foss/ModemManager/plugins/.libs/lt-test-service-generic:2601): ERROR **: Error setting test profile: GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Failed: Failed to find primary AT port FAIL GTester: last random seed: R02S3897abaae9df36f8d2eeb679406ab675 make[3]: *** [Makefile:3804: test-nonrecursive] Terminated --- src/kerneldevice/mm-kernel-device-generic.c | 3 ++- src/mm-plugin.c | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/kerneldevice/mm-kernel-device-generic.c b/src/kerneldevice/mm-kernel-device-generic.c index 3860e424..0434bd1b 100644 --- a/src/kerneldevice/mm-kernel-device-generic.c +++ b/src/kerneldevice/mm-kernel-device-generic.c @@ -894,7 +894,8 @@ mm_kernel_device_generic_new_with_rules (MMKernelEventProperties *properties, GError **error) { g_return_val_if_fail (MM_IS_KERNEL_EVENT_PROPERTIES (properties), NULL); - g_return_val_if_fail (rules != NULL, NULL); + + /* Note: we allow NULL rules, e.g. for virtual devices */ return MM_KERNEL_DEVICE (g_initable_new (MM_TYPE_KERNEL_DEVICE_GENERIC, NULL, diff --git a/src/mm-plugin.c b/src/mm-plugin.c index 8ebdbd17..6fce8898 100644 --- a/src/mm-plugin.c +++ b/src/mm-plugin.c @@ -962,7 +962,10 @@ mm_plugin_create_modem (MMPlugin *self, mm_kernel_event_properties_set_subsystem (properties, "virtual"); mm_kernel_event_properties_set_name (properties, virtual_ports[i]); - kernel_device = mm_kernel_device_generic_new (properties, &inner_error); + /* Give an empty set of rules, because we don't want them to be + * loaded from the udev rules path (as there may not be any + * installed yet). */ + kernel_device = mm_kernel_device_generic_new_with_rules (properties, NULL, &inner_error); if (!kernel_device) { mm_warn ("Could not grab port (virtual/%s): '%s'", virtual_ports[i],