From d7e0bb9779089ebc192c1f51384bbf46b64c43cd Mon Sep 17 00:00:00 2001 From: wrobell Date: Thu, 3 May 2012 18:25:50 +0000 Subject: [PATCH] - removed udev patch, which is part of gimp 2.8.0 already Changed files: gimp-udev.patch -> 1.2 gimp.spec -> 1.350 --- gimp-udev.patch | 564 ------------------------------------------------ gimp.spec | 7 +- 2 files changed, 2 insertions(+), 569 deletions(-) delete mode 100644 gimp-udev.patch diff --git a/gimp-udev.patch b/gimp-udev.patch deleted file mode 100644 index 00b3998..0000000 --- a/gimp-udev.patch +++ /dev/null @@ -1,564 +0,0 @@ -From f1bb40166b1061f630fab615f658310c25abf423 Mon Sep 17 00:00:00 2001 -From: Michael Natterer -Date: Thu, 23 Jun 2011 14:30:58 +0000 -Subject: Bug 592364 - Use GUdev rather than deprecated HAL for GIMP - -GIMP was probably the only user of libhal on most systems, this had -to stop. Ported the linux-input module to GUdev. ---- -diff --git a/configure.in b/configure.in -index 1297e0c..f4c1457 100644 ---- a/configure.in -+++ b/configure.in -@@ -58,7 +58,7 @@ m4_define([pygtk_required_version], [2.10.4]) - m4_define([poppler_required_version], [0.12.4]) - m4_define([libcurl_required_version], [7.15.1]) - m4_define([dbus_glib_required_version], [0.70]) --m4_define([libhal_required_version], [0.5.7]) -+m4_define([libgudev_required_version], [167]) - m4_define([exif_required_version], [0.6.15]) - m4_define([lcms_required_version], [1.16]) - m4_define([libpng_required_version], [1.2.37]) -@@ -1623,27 +1623,27 @@ if test "x$have_dbus_glib" = xyes; then - fi - - --############################################### --# Check for libhal (Hardware Abstraction Layer) --############################################### -+#################### -+# Check for libgudev -+#################### - --AC_ARG_WITH(hal, [ --without-hal build without HAL support]) -+AC_ARG_WITH(gudev, [ --without-gudev build without GUdev support]) - --have_libhal=no -+have_libgudev=no - --if test "x$with_hal" = xno; then -- have_libhal="no (disabled)" -+if test "x$with_gudev" = xno; then -+ have_libgudev="no (disabled)" - fi - - if test "x$have_linux_input" = xyes && test "x$have_dbus_glib" = xyes && -- test "x$with_hal" != xno; then -- PKG_CHECK_MODULES(HAL, hal >= libhal_required_version, -- have_libhal=yes, -- have_libhal="no (libhal not found)") -+ test "x$with_gudev" != xno; then -+ PKG_CHECK_MODULES(GUDEV, gudev-1.0 >= libgudev_required_version, -+ have_libgudev=yes, -+ have_libgudev="no (libgudev not found)") - fi - --if test "x$have_libhal" = xyes; then -- AC_DEFINE(HAVE_LIBHAL, 1, [Define to 1 if libhal is available]) -+if test "x$have_libgudev" = xyes; then -+ AC_DEFINE(HAVE_LIBGUDEV, 1, [Define to 1 if libgudev is available]) - fi - - -@@ -2304,7 +2304,7 @@ Plug-In Features: - - Optional Modules: - ALSA (MIDI Input): $have_alsa -- Linux Input: $have_linux_input (HAL support: $have_libhal) -+ Linux Input: $have_linux_input (GUdev support: $have_libgudev) - DirectInput (Win32): $have_dx_dinput - Color Correction: $have_lcms - Soft Proof: $have_lcms -diff --git a/modules/Makefile.am b/modules/Makefile.am -index 4dfced7..ab476a3 100644 ---- a/modules/Makefile.am -+++ b/modules/Makefile.am -@@ -104,13 +104,13 @@ libdisplay_filter_proof_la_LDFLAGS = -avoid-version -module $(no_undefined) - libdisplay_filter_proof_la_LIBADD = $(display_filter_libadd) $(LCMS_LIBS) - - libcontroller_linux_input_la_SOURCES = \ -- gimpinputdevicestore-hal.c \ -+ gimpinputdevicestore-gudev.c \ - gimpinputdevicestore.h \ - controller-linux-input.c --libcontroller_linux_input_la_CFLAGS = $(DBUS_GLIB_CFLAGS) $(HAL_CFLAGS) -+libcontroller_linux_input_la_CFLAGS = $(GUDEV_CFLAGS) - libcontroller_linux_input_la_LDFLAGS = -avoid-version -module $(no_undefined) - libcontroller_linux_input_la_LIBADD = \ -- $(controller_libadd) $(DBUS_GLIB_LIBS) $(HAL_LIBS) -+ $(controller_libadd) $(GUDEV_LIBS) - - libcontroller_dx_dinput_la_SOURCES = \ - gimpinputdevicestore-dx.c \ -diff --git a/modules/controller-linux-input.c b/modules/controller-linux-input.c -index b7f69e0..fe3f5e8 100644 ---- a/modules/controller-linux-input.c -+++ b/modules/controller-linux-input.c -@@ -218,7 +218,7 @@ controller_linux_input_class_init (ControllerLinuxInputClass *klass) - _("The name of the device to read Linux Input events from."), - NULL, - GIMP_CONFIG_PARAM_FLAGS)); --#ifdef HAVE_LIBHAL -+#ifdef HAVE_LIBGUDEV - g_object_class_install_property (object_class, PROP_DEVICE_STORE, - g_param_spec_object ("device-values", - NULL, NULL, -@@ -480,11 +480,11 @@ linux_input_get_device_info (ControllerLinuxInput *controller, - - static void - linux_input_device_changed (ControllerLinuxInput *controller, -- const gchar *udi) -+ const gchar *identifier) - { -- if (controller->device && strcmp (udi, controller->device) == 0) -+ if (controller->device && strcmp (identifier, controller->device) == 0) - { -- linux_input_set_device (controller, udi); -+ linux_input_set_device (controller, identifier); - g_object_notify (G_OBJECT (controller), "device"); - } - } -diff --git a/modules/gimpinputdevicestore-hal.c b/modules/gimpinputdevicestore-gudev.c -index 06770dd..4c703bc 100644 ---- a/modules/gimpinputdevicestore-hal.c -+++ b/modules/gimpinputdevicestore-gudev.c -@@ -1,9 +1,10 @@ - /* GIMP - The GNU Image Manipulation Program - * Copyright (C) 1995 Spencer Kimball and Peter Mattis - * -- * gimpinputdevicestore-hal.c -- * Input device store based on HAL, the hardware abstraction layer. -+ * gimpinputdevicestore-gudev.c -+ * Input device store based on GUdev, the hardware abstraction layer. - * Copyright (C) 2007 Sven Neumann -+ * 2011 Michael Natterer - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -30,17 +31,16 @@ - #include "gimpinputdevicestore.h" - - --#ifdef HAVE_LIBHAL -+#ifdef HAVE_LIBGUDEV - --#include --#include --#include -+#include - - - enum - { -- COLUMN_UDI, -+ COLUMN_IDENTIFIER, - COLUMN_LABEL, -+ COLUMN_DEVICE_FILE, - NUM_COLUMNS - }; - -@@ -60,10 +60,10 @@ typedef struct _GimpInputDeviceStoreClass GimpInputDeviceStoreClass; - - struct _GimpInputDeviceStore - { -- GtkListStore parent_instance; -+ GtkListStore parent_instance; - -- LibHalContext *context; -- GError *error; -+ GUdevClient *client; -+ GError *error; - }; - - -@@ -72,23 +72,23 @@ struct _GimpInputDeviceStoreClass - GtkListStoreClass parent_class; - - void (* device_added) (GimpInputDeviceStore *store, -- const gchar *udi); -+ const gchar *identifier); - void (* device_removed) (GimpInputDeviceStore *store, -- const gchar *udi); -+ const gchar *identifier); - }; - - - static void gimp_input_device_store_finalize (GObject *object); - - static gboolean gimp_input_device_store_add (GimpInputDeviceStore *store, -- const gchar *udi); -+ GUdevDevice *device); - static gboolean gimp_input_device_store_remove (GimpInputDeviceStore *store, -- const gchar *udi); -+ GUdevDevice *device); - --static void gimp_input_device_store_device_added (LibHalContext *ctx, -- const char *udi); --static void gimp_input_device_store_device_removed (LibHalContext *ctx, -- const char *udi); -+static void gimp_input_device_store_uevent (GUdevClient *client, -+ const gchar *action, -+ GUdevDevice *device, -+ GimpInputDeviceStore *store); - - - G_DEFINE_DYNAMIC_TYPE (GimpInputDeviceStore, gimp_input_device_store, -@@ -140,61 +140,31 @@ gimp_input_device_store_class_finalize (GimpInputDeviceStoreClass *klass) - static void - gimp_input_device_store_init (GimpInputDeviceStore *store) - { -- GType types[] = { G_TYPE_STRING, G_TYPE_STRING }; -- DBusGConnection *connection; -- DBusError dbus_error; -+ GType types[] = { G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING }; -+ const gchar *subsystems[] = { "input", NULL }; -+ GList *devices; -+ GList *list; - - gtk_list_store_set_column_types (GTK_LIST_STORE (store), - G_N_ELEMENTS (types), types); - -- connection = dbus_g_bus_get (DBUS_BUS_SYSTEM, &store->error); -+ store->client = g_udev_client_new (subsystems); - -- if (! connection) -- return; -+ devices = g_udev_client_query_by_subsystem (store->client, "input"); - -- store->context = libhal_ctx_new (); -- -- libhal_ctx_set_dbus_connection (store->context, -- dbus_g_connection_get_connection (connection)); -- dbus_g_connection_unref (connection); -- -- dbus_error_init (&dbus_error); -- -- if (libhal_ctx_init (store->context, &dbus_error)) -+ for (list = devices; list; list = g_list_next (list)) - { -- char **devices; -- int i, num_devices; -- -- devices = libhal_find_device_by_capability (store->context, "input", -- &num_devices, NULL); -- -- for (i = 0; i < num_devices; i++) -- gimp_input_device_store_add (store, devices[i]); -+ GUdevDevice *device = list->data; - -- libhal_free_string_array (devices); -- -- libhal_ctx_set_user_data (store->context, store); -- -- libhal_ctx_set_device_added (store->context, -- gimp_input_device_store_device_added); -- libhal_ctx_set_device_removed (store->context, -- gimp_input_device_store_device_removed); -+ gimp_input_device_store_add (store, device); -+ g_object_unref (device); - } -- else -- { -- if (dbus_error_is_set (&dbus_error)) -- { -- dbus_set_g_error (&store->error, &dbus_error); -- dbus_error_free (&dbus_error); -- } -- else -- { -- g_set_error (&store->error, 0, 0, "Unable to connect to hald"); -- } - -- libhal_ctx_free (store->context); -- store->context = NULL; -- } -+ g_list_free (devices); -+ -+ g_signal_connect (store->client, "uevent", -+ G_CALLBACK (gimp_input_device_store_uevent), -+ store); - } - - static void -@@ -204,11 +172,10 @@ gimp_input_device_store_finalize (GObject *object) - { - GimpInputDeviceStore *store = GIMP_INPUT_DEVICE_STORE (object); - -- if (store->context) -+ if (store->client) - { -- libhal_ctx_shutdown (store->context, NULL); -- libhal_ctx_free (store->context); -- store->context = NULL; -+ g_object_unref (store->client); -+ store->client = NULL; - } - - if (store->error) -@@ -222,7 +189,7 @@ gimp_input_device_store_finalize (GObject *object) - - static gboolean - gimp_input_device_store_lookup (GimpInputDeviceStore *store, -- const gchar *udi, -+ const gchar *identifier, - GtkTreeIter *iter) - { - GtkTreeModel *model = GTK_TREE_MODEL (store); -@@ -235,11 +202,11 @@ gimp_input_device_store_lookup (GimpInputDeviceStore *store, - { - const gchar *str; - -- gtk_tree_model_get_value (model, iter, COLUMN_UDI, &value); -+ gtk_tree_model_get_value (model, iter, COLUMN_IDENTIFIER, &value); - - str = g_value_get_string (&value); - -- if (strcmp (str, udi) == 0) -+ if (strcmp (str, identifier) == 0) - { - g_value_unset (&value); - break; -@@ -254,8 +221,9 @@ gimp_input_device_store_lookup (GimpInputDeviceStore *store, - /* insert in alphabetic order */ - static void - gimp_input_device_store_insert (GimpInputDeviceStore *store, -- const gchar *udi, -- const gchar *label) -+ const gchar *identifier, -+ const gchar *label, -+ const gchar *device_file) - { - GtkTreeModel *model = GTK_TREE_MODEL (store); - GtkTreeIter iter; -@@ -283,72 +251,90 @@ gimp_input_device_store_insert (GimpInputDeviceStore *store, - } - - gtk_list_store_insert_with_values (GTK_LIST_STORE (store), &iter, pos, -- COLUMN_UDI, udi, -- COLUMN_LABEL, label, -+ COLUMN_IDENTIFIER, identifier, -+ COLUMN_LABEL, label, -+ COLUMN_DEVICE_FILE, device_file, - -1); - } - - static gboolean - gimp_input_device_store_add (GimpInputDeviceStore *store, -- const gchar *udi) -+ GUdevDevice *device) - { -- gboolean added = FALSE; -- char **caps; -- gint i; -- -- caps = libhal_device_get_property_strlist (store->context, -- udi, "info.capabilities", -- NULL); -- -- for (i = 0; caps && caps[i] && !added; i++) -+ const gchar *device_file = g_udev_device_get_device_file (device); -+#if 0 -+ const gchar *path = g_udev_device_get_sysfs_path (device); -+#endif -+ const gchar *name = g_udev_device_get_sysfs_attr (device, "name"); -+ -+#if 0 -+ g_printerr ("\ndevice added: %s, %s, %s\n", -+ name ? name : "NULL", -+ device_file ? device_file : "NULL", -+ path); -+#endif -+ -+ if (device_file) - { -- char *str; -+ if (name) -+ { -+ GtkTreeIter unused; -+ -+ if (! gimp_input_device_store_lookup (store, name, &unused)) -+ { -+ gimp_input_device_store_insert (store, name, name, device_file); - -- if (strcmp (caps[i], "input") != 0) -- continue; -+ g_signal_emit (store, store_signals[DEVICE_ADDED], 0, -+ name); - -- /* skip "PC Speaker" (why is this an input device at all?) */ -- str = libhal_device_get_property_string (store->context, -- udi, "input.physical_device", -- NULL); -- if (str) -+ return TRUE; -+ } -+ } -+ else - { -- gboolean speaker = -- strcmp (str, "/org/freedesktop/Hal/devices/platform_pcspkr") == 0; -+ GUdevDevice *parent = g_udev_device_get_parent (device); -+ const gchar *parent_name; - -- libhal_free_string (str); -+ parent_name = g_udev_device_get_sysfs_attr (parent, "name"); - -- if (speaker) -- continue; -- } -+ if (parent_name) -+ { -+ GtkTreeIter unused; - -- str = libhal_device_get_property_string (store->context, -- udi, "input.product", -- NULL); -- if (str) -- { -- gimp_input_device_store_insert (store, udi, str); -+ if (! gimp_input_device_store_lookup (store, parent_name, &unused)) -+ { -+ gimp_input_device_store_insert (store, parent_name, parent_name, -+ device_file); -+ -+ g_signal_emit (store, store_signals[DEVICE_ADDED], 0, -+ parent_name); - -- libhal_free_string (str); -+ g_object_unref (parent); -+ return TRUE; -+ } -+ } - -- added = TRUE; -+ g_object_unref (parent); -+ return FALSE; - } - } - -- libhal_free_string_array (caps); -- -- return added; -+ return FALSE; - } - - static gboolean - gimp_input_device_store_remove (GimpInputDeviceStore *store, -- const gchar *udi) -+ GUdevDevice *device) - { -+ const gchar *name = g_udev_device_get_sysfs_attr (device, "name"); - GtkTreeIter iter; - -- if (gimp_input_device_store_lookup (store, udi, &iter)) -+ if (gimp_input_device_store_lookup (store, name, &iter)) - { - gtk_list_store_remove (GTK_LIST_STORE (store), &iter); -+ -+ g_signal_emit (store, store_signals[DEVICE_REMOVED], 0, name); -+ - return TRUE; - } - -@@ -356,26 +342,18 @@ gimp_input_device_store_remove (GimpInputDeviceStore *store, - } - - static void --gimp_input_device_store_device_added (LibHalContext *ctx, -- const char *udi) -+gimp_input_device_store_uevent (GUdevClient *client, -+ const gchar *action, -+ GUdevDevice *device, -+ GimpInputDeviceStore *store) - { -- GimpInputDeviceStore *store = libhal_ctx_get_user_data (ctx); -- -- if (gimp_input_device_store_add (store, udi)) -+ if (! strcmp (action, "add")) - { -- g_signal_emit (store, store_signals[DEVICE_ADDED], 0, udi); -+ gimp_input_device_store_add (store, device); - } --} -- --static void --gimp_input_device_store_device_removed (LibHalContext *ctx, -- const char *udi) --{ -- GimpInputDeviceStore *store = libhal_ctx_get_user_data (ctx); -- -- if (gimp_input_device_store_remove (store, udi)) -+ else if (! strcmp (action, "remove")) - { -- g_signal_emit (store, store_signals[DEVICE_REMOVED], 0, udi); -+ gimp_input_device_store_remove (store, device); - } - } - -@@ -387,30 +365,26 @@ gimp_input_device_store_new (void) - - gchar * - gimp_input_device_store_get_device_file (GimpInputDeviceStore *store, -- const gchar *udi) -+ const gchar *identifier) - { - GtkTreeIter iter; - - g_return_val_if_fail (GIMP_IS_INPUT_DEVICE_STORE (store), NULL); -- g_return_val_if_fail (udi != NULL, NULL); -+ g_return_val_if_fail (identifier != NULL, NULL); - -- if (! store->context) -+ if (! store->client) - return NULL; - -- if (gimp_input_device_store_lookup (store, udi, &iter)) -+ if (gimp_input_device_store_lookup (store, identifier, &iter)) - { -- char *str = libhal_device_get_property_string (store->context, -- udi, "input.device", -- NULL); -- -- if (str) -- { -- gchar *retval = g_strdup (str); -+ GtkTreeModel *model = GTK_TREE_MODEL (store); -+ gchar *device_file; - -- libhal_free_string (str); -+ gtk_tree_model_get (model, &iter, -+ COLUMN_DEVICE_FILE, &device_file, -+ -1); - -- return retval; -- } -+ return device_file; - } - - return NULL; -@@ -424,7 +398,7 @@ gimp_input_device_store_get_error (GimpInputDeviceStore *store) - return store->error ? g_error_copy (store->error) : NULL; - } - --#else /* HAVE_LIBHAL */ -+#else /* HAVE_LIBGUDEV */ - - void - gimp_input_device_store_register_types (GTypeModule *module) -@@ -445,7 +419,7 @@ gimp_input_device_store_new (void) - - gchar * - gimp_input_device_store_get_device_file (GimpInputDeviceStore *store, -- const gchar *udi) -+ const gchar *identifier) - { - return NULL; - } -@@ -456,4 +430,4 @@ gimp_input_device_store_get_error (GimpInputDeviceStore *store) - return NULL; - } - --#endif /* HAVE_LIBHAL */ -+#endif /* HAVE_LIBGUDEV */ --- -cgit v0.9 diff --git a/gimp.spec b/gimp.spec index 65f826e..e9942da 100644 --- a/gimp.spec +++ b/gimp.spec @@ -30,7 +30,6 @@ Source0: ftp://ftp.gimp.org/pub/gimp/v2.8/%{name}-%{version}.tar.bz2 Patch0: %{name}-home_etc.patch Patch1: %{name}-desktop.patch Patch2: %{name}-gcc4.patch -Patch3: %{name}-udev.patch URL: http://www.gimp.org/ %{?with_aalib:BuildRequires: aalib-devel} BuildRequires: alsa-lib-devel >= 1.0.11 @@ -309,12 +308,10 @@ Wtyczka SVG dla GIMPa. %patch0 -p1 %patch1 -p1 %patch2 -p1 -%patch3 -p1 - -mv modules/gimpinputdevicestore-hal.c modules/gimpinputdevicestore-gudev.c +#%patch3 -p1 %build -rm acinclude.m4 m4macros/gtk-doc.m4 +rm acinclude.m4 %{__gtkdocize} %{__libtoolize} %{__aclocal} -I m4macros -- 2.44.0