From 0cccb6151688d541073f56d5a725c30b040d4765 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 14 May 2010 05:45:09 +0000 Subject: [PATCH] should work with old udev now I think? SVN revision: 48850 --- legacy/eeze/configure.ac | 6 ++++ legacy/eeze/src/lib/udev/Makefile.am | 2 +- legacy/eeze/src/lib/udev/eeze_udev_watch.c | 38 ++++++++++++++++++++++ 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/legacy/eeze/configure.ac b/legacy/eeze/configure.ac index 2c8ef57407..6b9a769fa2 100644 --- a/legacy/eeze/configure.ac +++ b/legacy/eeze/configure.ac @@ -60,6 +60,12 @@ AS_IF( [PKG_CHECK_MODULES(UDEV, libudev, [], [enable_eeze_udev="no"])] ) +udev_version=$(pkg-config udev --version | cut -d. -f2) +if test $udev_version -lt 23;then + EEZE_UDEV_CFLAGS="-DOLD_UDEV_RRRRRRRRRRRRRR" + AC_SUBST(EEZE_UDEV_CFLAGS) +fi + AM_CONDITIONAL([BUILD_EEZE_UDEV], [test "x${enable_eeze_udev}" = "xyes"]) EFL_EDBUS_BUILD="" diff --git a/legacy/eeze/src/lib/udev/Makefile.am b/legacy/eeze/src/lib/udev/Makefile.am index ea94e220e6..5102a20d81 100644 --- a/legacy/eeze/src/lib/udev/Makefile.am +++ b/legacy/eeze/src/lib/udev/Makefile.am @@ -1,6 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in -AM_CPPFLAGS = @ECORE_CFLAGS@ +AM_CPPFLAGS = @ECORE_CFLAGS@ @EEZE_UDEV_CFLAGS@ if BUILD_EEZE_UDEV diff --git a/legacy/eeze/src/lib/udev/eeze_udev_watch.c b/legacy/eeze/src/lib/udev/eeze_udev_watch.c index eed7564ec8..454f78477c 100644 --- a/legacy/eeze/src/lib/udev/eeze_udev_watch.c +++ b/legacy/eeze/src/lib/udev/eeze_udev_watch.c @@ -41,18 +41,34 @@ _get_syspath_from_watch(void *data, Ecore_Fd_Handler *fd_handler) switch (store->type) { case EUDEV_TYPE_KEYBOARD: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "input"))) + goto error; +#endif if (!udev_device_get_property_value(device, "ID_INPUT_KEYBOARD")) goto error; break; case EUDEV_TYPE_MOUSE: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "input"))) + goto error; +#endif if (!udev_device_get_property_value(device, "ID_INPUT_MOUSE")) goto error; break; case EUDEV_TYPE_TOUCHPAD: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "input"))) + goto error; +#endif if (!udev_device_get_property_value(device, "ID_INPUT_TOUCHPAD")) goto error; break; case EUDEV_TYPE_DRIVE_MOUNTABLE: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "block"))) + goto error; +#endif test = udev_device_get_sysattr_value(device, "capability"); if (test) cap = atoi(test); if (!(test = (udev_device_get_property_value(device, "ID_FS_USAGE"))) || @@ -60,24 +76,44 @@ _get_syspath_from_watch(void *data, Ecore_Fd_Handler *fd_handler) goto error; break; case EUDEV_TYPE_DRIVE_INTERNAL: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "block"))) + goto error; +#endif if (!(test = udev_device_get_property_value(device, "ID_BUS")) || (strcmp("ata", test)) || !(test = udev_device_get_sysattr_value(device, "removable")) || (atoi(test))) goto error; break; case EUDEV_TYPE_DRIVE_REMOVABLE: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "block"))) + goto error; +#endif if ((!(test = udev_device_get_sysattr_value(device, "removable")) || (!atoi(test))) && (!(test = udev_device_get_sysattr_value(device, "capability")) || (atoi(test) != 10))) goto error; break; case EUDEV_TYPE_DRIVE_CDROM: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "block"))) + goto error; +#endif if (!udev_device_get_property_value(device, "ID_CDROM")) goto error; break; case EUDEV_TYPE_POWER_AC: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "power_supply"))) + goto error; +#endif if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) || (strcmp("Mains", test))) break; case EUDEV_TYPE_POWER_BAT: +#ifdef OLD_UDEV_RRRRRRRRRRRRRR + if ((!(test = udev_device_get_subsystem(device))) || (strcmp(test, "power_supply"))) + goto error; +#endif if (!(test = (udev_device_get_property_value(device, "POWER_SUPPLY_TYPE"))) || (strcmp("Battery", test))) break; @@ -146,6 +182,7 @@ eeze_udev_watch_add(Eudev_Type type, void(*func)(const char *, const char *, voi goto error; if (!(mon = udev_monitor_new_from_netlink(udev, "udev"))) goto error; +#ifndef OLD_UDEV_RRRRRRRRRRRRRR switch (type) { case EUDEV_TYPE_KEYBOARD: @@ -183,6 +220,7 @@ eeze_udev_watch_add(Eudev_Type type, void(*func)(const char *, const char *, voi default: break; } +#endif if (udev_monitor_enable_receiving(mon)) goto error;