Backport some fixes from upstream for gnome-settings-daemon.
This commit is contained in:
parent
a94e0036a4
commit
a3c0c15f13
236
colord-upstream-fixes.patch
Normal file
236
colord-upstream-fixes.patch
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
diff --git a/src/cd-main.c b/src/cd-main.c
|
||||||
|
index a5e0ff6..ce4de30 100644
|
||||||
|
--- a/src/cd-main.c
|
||||||
|
+++ b/src/cd-main.c
|
||||||
|
@@ -265,25 +265,16 @@ out:
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * cd_main_device_auto_add_profile_md:
|
||||||
|
+ * cd_main_auto_add_from_md:
|
||||||
|
**/
|
||||||
|
static gboolean
|
||||||
|
-cd_main_device_auto_add_profile_md (CdDevice *device, CdProfile *profile)
|
||||||
|
+cd_main_auto_add_from_md (CdMainPrivate *priv,
|
||||||
|
+ CdDevice *device,
|
||||||
|
+ CdProfile *profile)
|
||||||
|
{
|
||||||
|
- const gchar *device_id;
|
||||||
|
gboolean ret = FALSE;
|
||||||
|
GError *error = NULL;
|
||||||
|
|
||||||
|
- /* does the profile have device metadata */
|
||||||
|
- device_id = cd_profile_get_metadata_item (profile,
|
||||||
|
- CD_PROFILE_METADATA_MAPPING_DEVICE_ID);
|
||||||
|
- if (device_id == NULL)
|
||||||
|
- goto out;
|
||||||
|
-
|
||||||
|
- /* does this device match? */
|
||||||
|
- if (g_strcmp0 (cd_device_get_id (device), device_id) != 0)
|
||||||
|
- goto out;
|
||||||
|
-
|
||||||
|
/* auto-add soft relationship */
|
||||||
|
g_debug ("CdMain: Automatically MD add %s to %s",
|
||||||
|
cd_profile_get_id (profile),
|
||||||
|
@@ -307,12 +298,12 @@ out:
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * cd_main_device_auto_add_profile_db:
|
||||||
|
+ * cd_main_auto_add_from_db:
|
||||||
|
**/
|
||||||
|
static gboolean
|
||||||
|
-cd_main_device_auto_add_profile_db (CdMainPrivate *priv,
|
||||||
|
- CdDevice *device,
|
||||||
|
- CdProfile *profile)
|
||||||
|
+cd_main_auto_add_from_db (CdMainPrivate *priv,
|
||||||
|
+ CdDevice *device,
|
||||||
|
+ CdProfile *profile)
|
||||||
|
{
|
||||||
|
gboolean ret = FALSE;
|
||||||
|
GError *error = NULL;
|
||||||
|
@@ -350,36 +341,37 @@ out:
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * cd_main_device_auto_add_profile:
|
||||||
|
+ * cd_main_device_auto_add_from_md:
|
||||||
|
**/
|
||||||
|
-static gboolean
|
||||||
|
-cd_main_device_auto_add_profile (CdMainPrivate *priv,
|
||||||
|
- CdDevice *device,
|
||||||
|
- CdProfile *profile)
|
||||||
|
+static void
|
||||||
|
+cd_main_device_auto_add_from_md (CdMainPrivate *priv,
|
||||||
|
+ CdDevice *device)
|
||||||
|
{
|
||||||
|
- gboolean ret;
|
||||||
|
-
|
||||||
|
- /* try adding devices from the mapping db -- we do this first
|
||||||
|
- * as the database entries might be hard */
|
||||||
|
- ret = cd_main_device_auto_add_profile_db (priv, device, profile);
|
||||||
|
- if (ret)
|
||||||
|
- goto out;
|
||||||
|
+ CdProfile *profile_tmp;
|
||||||
|
+ GPtrArray *array;
|
||||||
|
+ guint i;
|
||||||
|
|
||||||
|
- /* first try finding profile metadata to the device,
|
||||||
|
- * which will be added soft */
|
||||||
|
- ret = cd_main_device_auto_add_profile_md (device, profile);
|
||||||
|
- if (ret)
|
||||||
|
+ /* get all the profiles, and check to see if any of them contain
|
||||||
|
+ * MAPPING_device_id that matches the device */
|
||||||
|
+ array = cd_profile_array_get_by_metadata (priv->profiles_array,
|
||||||
|
+ CD_PROFILE_METADATA_MAPPING_DEVICE_ID,
|
||||||
|
+ cd_device_get_id (device));
|
||||||
|
+ if (array == NULL)
|
||||||
|
goto out;
|
||||||
|
+ for (i = 0; i < array->len; i++) {
|
||||||
|
+ profile_tmp = g_ptr_array_index (array, i);
|
||||||
|
+ cd_main_auto_add_from_md (priv, device, profile_tmp);
|
||||||
|
+ }
|
||||||
|
out:
|
||||||
|
- return ret;
|
||||||
|
+ if (array != NULL)
|
||||||
|
+ g_ptr_array_unref (array);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * cd_main_device_auto_add_profiles:
|
||||||
|
+ * cd_main_device_auto_add_from_db:
|
||||||
|
**/
|
||||||
|
static void
|
||||||
|
-cd_main_device_auto_add_profiles (CdMainPrivate *priv,
|
||||||
|
- CdDevice *device)
|
||||||
|
+cd_main_device_auto_add_from_db (CdMainPrivate *priv, CdDevice *device)
|
||||||
|
{
|
||||||
|
CdProfile *profile_tmp;
|
||||||
|
const gchar *object_id_tmp;
|
||||||
|
@@ -404,15 +396,15 @@ cd_main_device_auto_add_profiles (CdMainPrivate *priv,
|
||||||
|
profile_tmp = cd_profile_array_get_by_id_owner (priv->profiles_array,
|
||||||
|
object_id_tmp,
|
||||||
|
cd_device_get_owner (device));
|
||||||
|
- if (profile_tmp != NULL) {
|
||||||
|
- cd_main_device_auto_add_profile (priv,
|
||||||
|
- device,
|
||||||
|
- profile_tmp);
|
||||||
|
- g_object_unref (profile_tmp);
|
||||||
|
- } else {
|
||||||
|
- g_debug ("CdMain: profile %s is not (yet) available",
|
||||||
|
- object_id_tmp);
|
||||||
|
+ if (profile_tmp == NULL) {
|
||||||
|
+ g_debug ("CdMain: profile %s with owner %i is not (yet) available",
|
||||||
|
+ object_id_tmp, cd_device_get_owner (device));
|
||||||
|
+ continue;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ /* does the profile have the correct device metadata */
|
||||||
|
+ cd_main_auto_add_from_db (priv, device, profile_tmp);
|
||||||
|
+ g_object_unref (profile_tmp);
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
if (array != NULL)
|
||||||
|
@@ -493,8 +485,9 @@ cd_main_device_add (CdMainPrivate *priv,
|
||||||
|
/* add to array */
|
||||||
|
cd_device_array_add (priv->devices_array, device);
|
||||||
|
|
||||||
|
- /* auto add profiles from the database */
|
||||||
|
- cd_main_device_auto_add_profiles (priv, device);
|
||||||
|
+ /* auto add profiles from the database and metadata */
|
||||||
|
+ cd_main_device_auto_add_from_db (priv, device);
|
||||||
|
+ cd_main_device_auto_add_from_md (priv, device);
|
||||||
|
out:
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
@@ -656,11 +649,11 @@ cd_main_sensor_array_to_variant (GPtrArray *array)
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
- * cd_main_profile_auto_add_to_device:
|
||||||
|
+ * cd_main_profile_auto_add_from_db:
|
||||||
|
**/
|
||||||
|
static void
|
||||||
|
-cd_main_profile_auto_add_to_device (CdMainPrivate *priv,
|
||||||
|
- CdProfile *profile)
|
||||||
|
+cd_main_profile_auto_add_from_db (CdMainPrivate *priv,
|
||||||
|
+ CdProfile *profile)
|
||||||
|
{
|
||||||
|
CdDevice *device_tmp;
|
||||||
|
const gchar *device_id_tmp;
|
||||||
|
@@ -692,15 +685,12 @@ cd_main_profile_auto_add_to_device (CdMainPrivate *priv,
|
||||||
|
device_tmp = cd_device_array_get_by_id_owner (priv->devices_array,
|
||||||
|
device_id_tmp,
|
||||||
|
cd_profile_get_owner (profile));
|
||||||
|
- if (device_tmp != NULL) {
|
||||||
|
- cd_main_device_auto_add_profile (priv,
|
||||||
|
- device_tmp,
|
||||||
|
- profile);
|
||||||
|
- g_object_unref (device_tmp);
|
||||||
|
- } else {
|
||||||
|
- g_debug ("CdMain: device %s is not (yet) available",
|
||||||
|
- device_id_tmp);
|
||||||
|
- }
|
||||||
|
+ if (device_tmp == NULL)
|
||||||
|
+ continue;
|
||||||
|
+
|
||||||
|
+ /* hard add */
|
||||||
|
+ cd_main_auto_add_from_db (priv, device_tmp, profile);
|
||||||
|
+ g_object_unref (device_tmp);
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
if (array != NULL)
|
||||||
|
@@ -708,6 +698,32 @@ out:
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
+ * cd_main_profile_auto_add_from_md:
|
||||||
|
+ **/
|
||||||
|
+static void
|
||||||
|
+cd_main_profile_auto_add_from_md (CdMainPrivate *priv,
|
||||||
|
+ CdProfile *profile)
|
||||||
|
+{
|
||||||
|
+ CdDevice *device = NULL;
|
||||||
|
+ const gchar *device_id;
|
||||||
|
+
|
||||||
|
+ /* does the device exists that matches the md */
|
||||||
|
+ device_id = cd_profile_get_metadata_item (profile,
|
||||||
|
+ CD_PROFILE_METADATA_MAPPING_DEVICE_ID);
|
||||||
|
+ if (device_id == NULL)
|
||||||
|
+ goto out;
|
||||||
|
+ device = cd_device_array_get_by_id_owner (priv->devices_array,
|
||||||
|
+ device_id,
|
||||||
|
+ cd_profile_get_owner (profile));
|
||||||
|
+ if (device == NULL)
|
||||||
|
+ goto out;
|
||||||
|
+ cd_main_auto_add_from_md (priv, device, profile);
|
||||||
|
+out:
|
||||||
|
+ if (device != NULL)
|
||||||
|
+ g_object_unref (device);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+/**
|
||||||
|
* cd_main_profile_register_on_bus:
|
||||||
|
**/
|
||||||
|
static gboolean
|
||||||
|
@@ -1375,9 +1391,6 @@ cd_main_daemon_method_call (GDBusConnection *connection, const gchar *sender,
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* auto add profiles from the database */
|
||||||
|
- cd_main_profile_auto_add_to_device (priv, profile);
|
||||||
|
-
|
||||||
|
/* get any file descriptor in the message */
|
||||||
|
message = g_dbus_method_invocation_get_message (invocation);
|
||||||
|
fd_list = g_dbus_message_get_unix_fd_list (message);
|
||||||
|
@@ -1421,6 +1434,10 @@ cd_main_daemon_method_call (GDBusConnection *connection, const gchar *sender,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ /* auto add profiles from the database and metadata */
|
||||||
|
+ cd_main_profile_auto_add_from_db (priv, profile);
|
||||||
|
+ cd_main_profile_auto_add_from_md (priv, profile);
|
||||||
|
+
|
||||||
|
/* register on bus */
|
||||||
|
ret = cd_main_profile_register_on_bus (priv, profile, &error);
|
||||||
|
if (!ret) {
|
@ -15,11 +15,14 @@
|
|||||||
Summary: Color daemon
|
Summary: Color daemon
|
||||||
Name: colord
|
Name: colord
|
||||||
Version: 0.1.28
|
Version: 0.1.28
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
License: GPLv2+ and LGPLv2+
|
License: GPLv2+ and LGPLv2+
|
||||||
URL: http://www.freedesktop.org/software/colord/
|
URL: http://www.freedesktop.org/software/colord/
|
||||||
Source0: http://www.freedesktop.org/software/colord/releases/%{name}-%{version}.tar.xz
|
Source0: http://www.freedesktop.org/software/colord/releases/%{name}-%{version}.tar.xz
|
||||||
|
|
||||||
|
# Upstream fixes required for g-s-d
|
||||||
|
Patch0: colord-upstream-fixes.patch
|
||||||
|
|
||||||
BuildRequires: dbus-devel
|
BuildRequires: dbus-devel
|
||||||
BuildRequires: docbook-utils
|
BuildRequires: docbook-utils
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
@ -92,6 +95,7 @@ This may be useful for CMYK soft-proofing or for extra device support.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1 -b .upstream-fixes
|
||||||
|
|
||||||
%build
|
%build
|
||||||
# we can't use _hardened_build here, see
|
# we can't use _hardened_build here, see
|
||||||
@ -239,6 +243,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
|
|||||||
%{_datadir}/gtk-doc/html/colord/*
|
%{_datadir}/gtk-doc/html/colord/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jan 16 2013 Richard Hughes <richard@hughsie.com> 0.1.28-2
|
||||||
|
- Backport some fixes from upstream for gnome-settings-daemon.
|
||||||
|
|
||||||
* Wed Jan 16 2013 Richard Hughes <richard@hughsie.com> 0.1.28-1
|
* Wed Jan 16 2013 Richard Hughes <richard@hughsie.com> 0.1.28-1
|
||||||
- New upstream version
|
- New upstream version
|
||||||
- Add some default GSetting schema values for the calibration helper
|
- Add some default GSetting schema values for the calibration helper
|
||||||
|
Loading…
Reference in New Issue
Block a user