diff options
author | Ondrej Holy <oholy@redhat.com> | 2017-10-24 16:12:39 +0200 |
---|---|---|
committer | Ondrej Holy <oholy@redhat.com> | 2017-11-01 10:55:29 +0100 |
commit | c2d856447e9067089388d70a85ab47821b375729 (patch) | |
tree | 53774f66f7d62a01ad83eac30b2196be32ca4e0c | |
parent | 1e9d338fe10f501cd9a6c9cdb2192755ba2b9bd9 (diff) | |
download | gvfs-c2d856447e9067089388d70a85ab47821b375729.tar.gz |
metadata: Remove udev dependency in favor of gudev
GVfs uses udev and also gudev. Let's use just gudev and remove corresponding
--enable-udev option.
https://bugzilla.gnome.org/show_bug.cgi?id=786149
-rw-r--r-- | configure.ac | 15 | ||||
-rw-r--r-- | meson.build | 7 | ||||
-rw-r--r-- | meson_options.txt | 1 | ||||
-rw-r--r-- | metadata/Makefile.am | 4 | ||||
-rw-r--r-- | metadata/meson.build | 2 | ||||
-rw-r--r-- | metadata/meta-daemon.c | 44 |
6 files changed, 22 insertions, 51 deletions
diff --git a/configure.ac b/configure.ac index 5520d352..a41201f4 100644 --- a/configure.ac +++ b/configure.ac @@ -186,21 +186,6 @@ PKG_CHECK_MODULES([LIBXML], [libxml-2.0], [msg_libxml=yes], [AM_CONDITIONAL([HAVE_LIBXML], [false])]) -dnl ************************* -dnl *** Check for libudev *** -dnl ************************* -AC_ARG_ENABLE([udev], [AS_HELP_STRING([--disable-udev],[build without libudev])]) -msg_udev=no - -if test "x$enable_udev" != "xno"; then - PKG_CHECK_EXISTS([libudev >= 138], [msg_udev=yes]) - - if test "x$msg_udev" = "xyes"; then - PKG_CHECK_MODULES([UDEV], [libudev]) - AC_DEFINE([HAVE_LIBUDEV], 1, [Define to 1 if libudev is available]) - fi -fi - dnl ********************** dnl *** Check for gudev *** dnl ********************** diff --git a/meson.build b/meson.build index b3e52ea5..913355d9 100644 --- a/meson.build +++ b/meson.build @@ -328,13 +328,6 @@ if enable_dnssd endif config_h.set('HAVE_AVAHI', enable_dnssd) -# *** Check for libudev *** -enable_udev = get_option('enable-udev') -if enable_udev - libudev_dep = dependency('libudev', version: '>= 138') -endif -config_h.set('HAVE_LIBUDEV', enable_udev) - # *** Check for gudev *** enable_gudev = get_option('enable-gudev') if enable_gudev diff --git a/meson_options.txt b/meson_options.txt index 3b2d7555..833b7d79 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -26,7 +26,6 @@ option('enable-gudev', type: 'boolean', value: true, description: 'build with gu option('enable-keyring', type: 'boolean', value: true, description: 'build with keyring support') option('enable-logind', type: 'boolean', value: true, description: 'build with logind support') option('enable-libusb', type: 'boolean', value: true, description: 'build with libusb interruption support') -option('enable-udev', type: 'boolean', value: true, description: 'build with libudev device support') option('enable-devel-utils', type: 'boolean', value: false, description: 'build with development utility programs') option('enable-installed-tests', type: 'boolean', value: false, description: 'enable installed unit tests') diff --git a/metadata/Makefile.am b/metadata/Makefile.am index 9acc2135..a6da9705 100644 --- a/metadata/Makefile.am +++ b/metadata/Makefile.am @@ -60,9 +60,9 @@ meta_get_tree_SOURCES = meta-get-tree.c convert_nautilus_metadata_LDADD = libmetadata.la $(LIBXML_LIBS) convert_nautilus_metadata_SOURCES = metadata-nautilus.c -gvfsd_metadata_LDADD = libmetadata.la ../common/libgvfscommon.la $(UDEV_LIBS) +gvfsd_metadata_LDADD = libmetadata.la ../common/libgvfscommon.la $(GUDEV_LIBS) gvfsd_metadata_SOURCES = meta-daemon.c -gvfsd_metadata_CFLAFGS = $(UDEV_CFLAGS) +gvfsd_metadata_CFLAGS = $(GUDEV_CFLAGS) # D-BUS service file %.service: %.service.in ../config.log diff --git a/metadata/meson.build b/metadata/meson.build index cdcb715a..a4f939a5 100644 --- a/metadata/meson.build +++ b/metadata/meson.build @@ -62,7 +62,7 @@ executable( dependencies: [ libgvfscommon_dep, libmetadata_dep, - libudev_dep + gudev_dep ], c_args: cflags, install: true, diff --git a/metadata/meta-daemon.c b/metadata/meta-daemon.c index 17402df4..444a4394 100644 --- a/metadata/meta-daemon.c +++ b/metadata/meta-daemon.c @@ -31,9 +31,8 @@ #include "gvfsdaemonprotocol.h" #include "metadata-dbus.h" -#ifdef HAVE_LIBUDEV -#define LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE -#include <libudev.h> +#ifdef HAVE_GUDEV +#include <gudev/gudev.h> #endif #if MAJOR_IN_MKDEV @@ -53,6 +52,9 @@ typedef struct { static GHashTable *tree_infos = NULL; static GVfsMetadata *skeleton = NULL; +#ifdef HAVE_GUDEV +static GUdevClient *gudev_client = NULL; +#endif static void tree_info_free (TreeInfo *info) @@ -309,32 +311,21 @@ handle_get_tree_from_device (GVfsMetadata *object, { char *res = NULL; -#ifdef HAVE_LIBUDEV - dev_t devnum = makedev (arg_major, arg_minor); - struct udev_device *dev; - const char *uuid, *label; - static struct udev *udev; - - if (udev == NULL) - udev = udev_new (); +#ifdef HAVE_GUDEV + GUdevDeviceNumber devnum = makedev (arg_major, arg_minor); + GUdevDevice *device; - dev = udev_device_new_from_devnum (udev, 'b', devnum); - uuid = udev_device_get_property_value (dev, "ID_FS_UUID_ENC"); + if (g_once_init_enter (&gudev_client)) + g_once_init_leave (&gudev_client, g_udev_client_new (NULL)); - res = NULL; - if (uuid) - { - res = g_strconcat ("uuid-", uuid, NULL); - } - else - { - label = udev_device_get_property_value (dev, "ID_FS_LABEL_ENC"); + device = g_udev_client_query_by_device_number (gudev_client, G_UDEV_DEVICE_TYPE_BLOCK, devnum); - if (label) - res = g_strconcat ("label-", label, NULL); - } + if (g_udev_device_has_property (device, "ID_FS_UUID_ENC")) + res = g_strconcat ("uuid-", g_udev_device_get_property (device, "ID_FS_UUID_ENC"), NULL); + else if (g_udev_device_has_property (device, "ID_FS_LABEL_ENC")) + res = g_strconcat ("label-", g_udev_device_get_property (device, "ID_FS_LABEL_ENC"), NULL); - udev_device_unref (dev); + g_clear_object (&device); #endif gvfs_metadata_complete_get_tree_from_device (object, invocation, res ? res : ""); @@ -485,6 +476,9 @@ main (int argc, char *argv[]) g_object_unref (conn); if (loop != NULL) g_main_loop_unref (loop); +#ifdef HAVE_GUDEV + g_clear_object (&gudev_client); +#endif return 0; } |