0
0
mirror of https://github.com/termux/termux-packages.git synced 2025-10-11 00:10:53 +00:00
Files
termux-packages/x11-packages/cinnamon-control-center/0002-disable-udev.patch
2025-09-02 04:43:02 -05:00

179 lines
5.5 KiB
Diff

diff --git a/meson.build b/meson.build
index a0e558c..ce88137 100644
--- a/meson.build
+++ b/meson.build
@@ -28,7 +28,6 @@ cinn_menu = dependency('libcinnamon-menu-3.0')
gtk = dependency('gtk+-3.0', version: '>=3.16.0')
glib = dependency('glib-2.0', version: '>=2.44.0')
gio_unix = dependency('gio-unix-2.0', version: '>=2.44.0')
-gudev_dep = dependency('gudev-1.0', version: '>= 232')
libgnomekbd = dependency('libgnomekbd', version: '>=3.0.0')
libgnomekbdui=dependency('libgnomekbdui', version: '>=3.0.0')
libnotify = dependency('libnotify', version: '>=0.7.3')
@@ -43,6 +42,14 @@ else
endif
config.set10('HAVE_POLKIT', have_polkit)
+have_udev = get_option('udev')
+if have_udev
+ gudev_dep = dependency('gudev-1.0', version: '>= 232')
+else
+ gudev_dep = dependency('', required: false)
+endif
+config.set('HAVE_UDEV', have_udev)
+
config.set('HAVE_X11_EXTENSIONS_XKB_H', cc.has_header('X11/extensions/XKB.h'))
###############################################################################
@@ -187,6 +194,7 @@ final_message = [ '',
'** Colord support (Color management panel) : @0@'.format(colord.found()),
'** Wacom support (Wacom panel) : @0@'.format(libwacom.found()),
'** Polkit support : @0@'.format(have_polkit),
+ '** Udev support : @0@'.format(have_udev),
'** Wayland support : @0@'.format(cc.has_header('gdk/gdkwayland.h', dependencies: gtk)),
'',
]
diff --git a/meson_options.txt b/meson_options.txt
index 89ecaeb..3bd86c3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -6,3 +6,4 @@ option('wacom', type: 'boolean', value: 'true', description: 'Wacom Mana
option('deprecated_warnings', type : 'boolean', value : false,
description: 'Show compiler warnings about deprecated features')
option('polkit', type: 'boolean', value: true, description: 'Enable polkit support')
+option('udev', type: 'boolean', value: 'true', description: 'Enable polkit support')
diff --git a/panels/common/csd-device-manager.c b/panels/common/csd-device-manager.c
index d10645a..08ba7e2 100644
--- a/panels/common/csd-device-manager.c
+++ b/panels/common/csd-device-manager.c
@@ -22,7 +22,9 @@
#include "config.h"
#include <string.h>
+#ifdef HAVE_UDEV
#include <gudev/gudev.h>
+#endif
#include "csd-device-manager.h"
#include "csd-common-enums.h"
@@ -52,7 +54,9 @@ typedef struct
{
GObject parent_instance;
GHashTable *devices;
+ #ifdef HAVE_UDEV
GUdevClient *udev_client;
+ #endif
} CsdDeviceManagerPrivate;
enum {
@@ -73,6 +77,7 @@ enum {
};
/* Index matches CsdDeviceType */
+#ifdef HAVE_UDEV
const gchar *udev_ids[] = {
"ID_INPUT_MOUSE",
"ID_INPUT_KEYBOARD",
@@ -81,6 +86,7 @@ const gchar *udev_ids[] = {
"ID_INPUT_TOUCHSCREEN",
"ID_INPUT_TABLET_PAD",
};
+#endif
static guint signals[N_SIGNALS] = { 0 };
@@ -254,9 +260,10 @@ csd_device_manager_finalize (GObject *object)
{
CsdDeviceManager *manager = CSD_DEVICE_MANAGER (object);
CsdDeviceManagerPrivate *priv = csd_device_manager_get_instance_private (manager);
-
- g_hash_table_destroy (priv->devices);
+ #ifdef HAVE_UDEV
+ g_hash_table_destroy (priv->devices);
g_object_unref (priv->udev_client);
+ #endif
G_OBJECT_CLASS (csd_device_manager_parent_class)->finalize (object);
}
@@ -265,6 +272,7 @@ static GList *
csd_device_manager_real_list_devices (CsdDeviceManager *manager,
CsdDeviceType type)
{
+#ifdef HAVE_UDEV
CsdDeviceManagerPrivate *priv = csd_device_manager_get_instance_private (manager);
CsdDeviceType device_type;
GList *devices = NULL;
@@ -281,12 +289,16 @@ csd_device_manager_real_list_devices (CsdDeviceManager *manager,
}
return devices;
+#else
+ return NULL;
+#endif
}
static CsdDevice *
csd_device_manager_real_lookup_device (CsdDeviceManager *manager,
GdkDevice *gdk_device)
{
+#ifdef HAVE_UDEV
CsdDeviceManagerPrivate *priv = csd_device_manager_get_instance_private (manager);
GdkDisplay *display = gdk_device_get_display (gdk_device);
const gchar *node_path = NULL;
@@ -314,6 +326,9 @@ csd_device_manager_real_lookup_device (CsdDeviceManager *manager,
}
return NULL;
+#else
+ return NULL;
+#endif
}
static void
@@ -354,6 +369,7 @@ csd_device_manager_class_init (CsdDeviceManagerClass *klass)
CSD_TYPE_DEVICE | G_SIGNAL_TYPE_STATIC_SCOPE);
}
+#ifdef HAVE_UDEV
static CsdDeviceType
udev_device_get_device_type (GUdevDevice *device)
{
@@ -469,10 +485,12 @@ udev_event_cb (GUdevClient *client,
remove_device (manager, device);
}
}
+#endif
static void
csd_device_manager_init (CsdDeviceManager *manager)
{
+#ifdef HAVE_UDEV
CsdDeviceManagerPrivate *priv = csd_device_manager_get_instance_private (manager);
const gchar *subsystems[] = { "input", NULL };
g_autoptr(GList) devices = NULL;
@@ -495,6 +513,7 @@ csd_device_manager_init (CsdDeviceManager *manager)
if (device_is_evdev (device))
add_device (manager, device);
}
+#endif
}
CsdDeviceManager *
diff --git a/panels/common/meson.build b/panels/common/meson.build
index 0cf7b69..c95d332 100644
--- a/panels/common/meson.build
+++ b/panels/common/meson.build
@@ -60,7 +60,11 @@ csd_sources = [
sources = common_sources + files(csd_sources)
-deps = [ gudev_dep, glib, gio_unix, gtk, cinn_desktop ]
+deps = [ glib, gio_unix, gtk, cinn_desktop ]
+
+if have_udev
+ deps += gudev_dep
+endif
libdevice = static_library(
'device',