diff options
author | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-10-03 23:24:38 -0400 |
---|---|---|
committer | Alexandre Rostovtsev <tetromino@gmail.com> | 2011-10-03 23:59:07 -0400 |
commit | 6e5c9de86538440ac92f3c8e244041293a478a53 (patch) | |
tree | 0f1cc2c6e7432af697cdfcab935396d43a762073 /gnome-base/gnome-settings-daemon/files | |
parent | x11-misc/colord: add 0.1.13 (diff) | |
download | gnome-6e5c9de86538440ac92f3c8e244041293a478a53.tar.gz gnome-6e5c9de86538440ac92f3c8e244041293a478a53.tar.bz2 gnome-6e5c9de86538440ac92f3c8e244041293a478a53.zip |
gnome-base/gnome-settings-daemon: lots of patches (incl. bug #385063)
Add another large batch of upstream patches from gnome-3-2 branch,
fixing build errors, a number of runtime errors and crashes in the color
plugin, and backlight issues.
In particular, in combination with gnome-desktop-3.2.0-r1, fixes the
incorrect DPMS timeout being set (reported by poncho <poncho@spahan.ch>
in bug #385063).
Also, raise colord dependency to 0.1.13 since it fixes polkit
authorization errors at startup caused by running colord as a non-root
user.
Diffstat (limited to 'gnome-base/gnome-settings-daemon/files')
9 files changed, 582 insertions, 0 deletions
diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0008-printers-Fix-build-on-systems-without-LC_PAPER.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0008-printers-Fix-build-on-systems-without-LC_PAPER.patch new file mode 100644 index 00000000..b936a006 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0008-printers-Fix-build-on-systems-without-LC_PAPER.patch @@ -0,0 +1,79 @@ +From 512bac5200ad439083348ce447bf6106b9d78ca1 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera <hadess@hadess.net> +Date: Mon, 3 Oct 2011 11:28:28 +0100 +Subject: [PATCH 1/8] printers: Fix build on systems without LC_PAPER + +By using gtk_paper_size_get_default() directly to do all +the hard work for us. + +https://bugzilla.gnome.org/show_bug.cgi?id=660626 +--- + plugins/print-notifications/gsd-printer.c | 29 +++++++++-------------------- + 1 files changed, 9 insertions(+), 20 deletions(-) + +diff --git a/plugins/print-notifications/gsd-printer.c b/plugins/print-notifications/gsd-printer.c +index 70676d4..aa405bc 100644 +--- a/plugins/print-notifications/gsd-printer.c ++++ b/plugins/print-notifications/gsd-printer.c +@@ -24,6 +24,7 @@ + #include <libnotify/notify.h> + #include <glib/gi18n.h> + #include <glib/gstdio.h> ++#include <gtk/gtk.h> + #include <cups/cups.h> + #include <cups/ppd.h> + +@@ -751,9 +752,8 @@ set_default_paper_size (const gchar *printer_name, + GVariant *output; + GError *error = NULL; + gchar **value = NULL; +- gchar *paper_size; +- char *locale; + gint i, j, k; ++ const gchar *paper_size; + + proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_NONE, +@@ -770,24 +770,14 @@ set_default_paper_size (const gchar *printer_name, + return; + } + +- /* Set default PaperSize according to the locale */ +- locale = setlocale (LC_PAPER, NULL); +- if (!locale) +- locale = setlocale (LC_MESSAGES, NULL); +- +- if (!locale) { +- g_object_unref (proxy); +- return; +- } +- +- /* CLDR 2.0 alpha +- * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/territory_language_information.html +- */ +- if (g_regex_match_simple ("[^_.@]{2,3}_(BZ|CA|CL|CO|CR|GT|MX|NI|PA|PH|PR|SV|US|VE)", +- locale, G_REGEX_ANCHORED, G_REGEX_MATCH_ANCHORED)) +- paper_size = g_strdup ("Letter"); ++ /* Set default PaperSize according to the locale ++ * FIXME: Handle more than A4 and Letter: ++ * https://bugzilla.gnome.org/show_bug.cgi?id=660769 */ ++ paper_size = gtk_paper_size_get_default (); ++ if (g_str_equal (paper_size, GTK_PAPER_NAME_LETTER)) ++ paper_size = "Letter"; + else +- paper_size = g_strdup ("A4"); ++ paper_size = "A4"; + + if (ppd_file_name) { + ppd_file = ppdOpenFile (ppd_file_name); +@@ -842,7 +832,6 @@ set_default_paper_size (const gchar *printer_name, + g_strfreev (value); + } + +- g_free (paper_size); + g_object_unref (proxy); + } + +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0009-power-Do-not-revert-to-the-pre-idle-brightness-if-id.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0009-power-Do-not-revert-to-the-pre-idle-brightness-if-id.patch new file mode 100644 index 00000000..81e28b42 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0009-power-Do-not-revert-to-the-pre-idle-brightness-if-id.patch @@ -0,0 +1,33 @@ +From 27bf0e2901e2281143f144324b151a40654f6a5b Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Thu, 29 Sep 2011 14:32:17 +0100 +Subject: [PATCH 2/8] power: Do not revert to the pre-idle brightness if idle + dimming is disabled + +We want to set manager->priv->pre_dim_brightness = -1 to indicate that we're +restored the value and that no further restoration is required, as the user may +have already altered the level. + +This will only happen if you disable dimming at runtime after having dimmed at +least once. + +Resolves https://bugzilla.gnome.org/show_bug.cgi?id=660434 +--- + plugins/power/gsd-power-manager.c | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c +index 370d90d..a1bc213 100644 +--- a/plugins/power/gsd-power-manager.c ++++ b/plugins/power/gsd-power-manager.c +@@ -2756,6 +2756,7 @@ idle_set_mode (GsdPowerManager *manager, GsdPowerIdleMode mode) + g_error_free (error); + return; + } ++ manager->priv->pre_dim_brightness = -1; + } + } + } +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0010-color-Do-not-load-all-the-color-devices-twice-at-sta.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0010-color-Do-not-load-all-the-color-devices-twice-at-sta.patch new file mode 100644 index 00000000..6160d643 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0010-color-Do-not-load-all-the-color-devices-twice-at-sta.patch @@ -0,0 +1,76 @@ +From 46347223c475eb6ca1a4d4caa3f63b9302cfe8d9 Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Fri, 30 Sep 2011 12:21:54 +0100 +Subject: [PATCH 3/8] color: Do not load all the color devices twice at + startup + +If the color plugin was the first thing to use GnomeSettingsSession then we'll +get an unknown->active transision when starting up, and we'll try to re-assign +all the devices again. + +This speeds up loading of the color plugin typically by ~250ms, or quite a bit +more if you have lots of devices like me. +--- + plugins/color/gsd-color-manager.c | 24 +++++++++++++++++------- + 1 files changed, 17 insertions(+), 7 deletions(-) + +diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c +index 14a4576..b4b6b3b 100644 +--- a/plugins/color/gsd-color-manager.c ++++ b/plugins/color/gsd-color-manager.c +@@ -58,6 +58,7 @@ struct GsdColorManagerPrivate + GnomeRRScreen *x11_screen; + GHashTable *edid_cache; + GdkWindow *gdk_window; ++ GnomeSettingsSessionState session_state; + }; + + enum { +@@ -1950,21 +1951,29 @@ gcm_session_active_changed_cb (GnomeSettingsSession *session, + GParamSpec *pspec, + GsdColorManager *manager) + { +- GnomeSettingsSessionState state; ++ GnomeSettingsSessionState state_new; ++ GsdColorManagerPrivate *priv = manager->priv; + + /* not yet connected to the daemon */ +- if (!cd_client_get_connected (manager->priv->client)) ++ if (!cd_client_get_connected (priv->client)) + return; + +- /* when doing the fast-user-switch into a new account, load the +- * new users chosen profiles */ +- state = gnome_settings_session_get_state (session); +- if (state == GNOME_SETTINGS_SESSION_STATE_ACTIVE) { +- g_debug ("Done switch to new account, reload devices"); ++ /* When doing the fast-user-switch into a new account, load the ++ * new users chosen profiles. ++ * ++ * If this is the first time the GnomeSettingsSession has been ++ * loaded, then we'll get a change from unknown to active ++ * and we want to avoid reprobing the devices for that. ++ */ ++ state_new = gnome_settings_session_get_state (session); ++ if (priv->session_state != GNOME_SETTINGS_SESSION_STATE_UNKNOWN && ++ state_new == GNOME_SETTINGS_SESSION_STATE_ACTIVE) { ++ g_warning ("Done switch to new account, reload devices"); + cd_client_get_devices (manager->priv->client, NULL, + gcm_session_get_devices_cb, + manager); + } ++ priv->session_state = state_new; + } + + static void +@@ -2020,6 +2029,7 @@ gsd_color_manager_init (GsdColorManager *manager) + + /* track the active session */ + priv->session = gnome_settings_session_new (); ++ priv->session_state = gnome_settings_session_get_state (priv->session); + g_signal_connect (priv->session, "notify::state", + G_CALLBACK (gcm_session_active_changed_cb), + manager); +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0011-color-Don-t-assign-the-same-device-more-than-once-at.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0011-color-Don-t-assign-the-same-device-more-than-once-at.patch new file mode 100644 index 00000000..b381381b --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0011-color-Don-t-assign-the-same-device-more-than-once-at.patch @@ -0,0 +1,91 @@ +From 9f14a09b2830fa4f7e6a88c656c8b991f93afae2 Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Fri, 30 Sep 2011 14:05:45 +0100 +Subject: [PATCH 4/8] color: Don't assign the same device more than once at + startup + +In the color plugin at startup there's a lot going on async, such as +registering devices and monitoring profiles for changes. As it's all happening +at the "same time", and possibly out-of-order we can't order things linearly in +the startup phase. + +This could mean we connect to a device and then straight away get the device +list (which also connects to the device) which means we're doing something twice +we only really need to do once. + +Do solve this, use a simple hash table to keep track of what devices are being +assigned at startup. A device gets removed from the cache as soon as it's been +connected to, so we don't end up processing old data. + +This speeds up the color plugin start by ~280ms if you have two display devices. +--- + plugins/color/gsd-color-manager.c | 25 +++++++++++++++++++++++++ + 1 files changed, 25 insertions(+), 0 deletions(-) + +diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c +index b4b6b3b..4f5f8bc 100644 +--- a/plugins/color/gsd-color-manager.c ++++ b/plugins/color/gsd-color-manager.c +@@ -59,6 +59,7 @@ struct GsdColorManagerPrivate + GHashTable *edid_cache; + GdkWindow *gdk_window; + GnomeSettingsSessionState session_state; ++ GHashTable *device_assign_hash; + }; + + enum { +@@ -1019,6 +1020,10 @@ gcm_session_device_assign_connect_cb (GObject *object, + GsdColorManager *manager = GSD_COLOR_MANAGER (user_data); + GsdColorManagerPrivate *priv = manager->priv; + ++ /* remove from assign array */ ++ g_hash_table_remove (manager->priv->device_assign_hash, ++ cd_device_get_object_path (device)); ++ + /* get properties */ + ret = cd_device_connect_finish (device, res, &error); + if (!ret) { +@@ -1129,6 +1134,19 @@ out: + static void + gcm_session_device_assign (GsdColorManager *manager, CdDevice *device) + { ++ const gchar *key; ++ gpointer found; ++ ++ /* are we already assigning this device */ ++ key = cd_device_get_object_path (device); ++ found = g_hash_table_lookup (manager->priv->device_assign_hash, key); ++ if (found != NULL) { ++ g_debug ("assign for %s already in progress", key); ++ return; ++ } ++ g_hash_table_insert (manager->priv->device_assign_hash, ++ g_strdup (key), ++ GINT_TO_POINTER (TRUE)); + cd_device_connect (device, + NULL, + gcm_session_device_assign_connect_cb, +@@ -2043,6 +2061,12 @@ gsd_color_manager_init (GsdColorManager *manager) + g_free, + g_object_unref); + ++ /* we don't want to assign devices multiple times at startup */ ++ priv->device_assign_hash = g_hash_table_new_full (g_str_hash, ++ g_str_equal, ++ g_free, ++ NULL); ++ + /* use DMI data for internal panels */ + priv->dmi = gcm_dmi_new (); + +@@ -2086,6 +2110,7 @@ gsd_color_manager_finalize (GObject *object) + g_object_unref (manager->priv->dmi); + g_object_unref (manager->priv->session); + g_hash_table_destroy (manager->priv->edid_cache); ++ g_hash_table_destroy (manager->priv->device_assign_hash); + if (manager->priv->x11_screen != NULL) + g_object_unref (manager->priv->x11_screen); + +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0012-color-Fix-critical-warning-if-the-user-disables-the-.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0012-color-Fix-critical-warning-if-the-user-disables-the-.patch new file mode 100644 index 00000000..9868d0ba --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0012-color-Fix-critical-warning-if-the-user-disables-the-.patch @@ -0,0 +1,91 @@ +From dd465a1a294c9af476261dcba7bee11e9022e4eb Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Mon, 3 Oct 2011 15:09:15 +0100 +Subject: [PATCH 5/8] color: Fix critical warning if the user disables the + internal LCD screen + +Note: this fix also applies to any output we've disabled but left connected. +--- + plugins/color/gsd-color-manager.c | 35 +++++++++++++++++++++++++++++++++-- + 1 files changed, 33 insertions(+), 2 deletions(-) + +diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c +index 4f5f8bc..c2221e9 100644 +--- a/plugins/color/gsd-color-manager.c ++++ b/plugins/color/gsd-color-manager.c +@@ -736,6 +736,10 @@ gcm_session_generate_vcgt (CdProfile *profile, guint size) + const gchar *filename; + cmsHPROFILE lcms_profile = NULL; + ++ /* invalid size */ ++ if (size == 0) ++ goto out; ++ + /* not an actual profile */ + filename = cd_profile_get_filename (profile); + if (filename == NULL) +@@ -776,6 +780,8 @@ gnome_rr_output_get_gamma_size (GnomeRROutput *output) + gint len = 0; + + crtc = gnome_rr_output_get_crtc (output); ++ if (crtc == NULL) ++ return 0; + gnome_rr_crtc_get_gamma (crtc, + &len, + NULL, NULL, NULL); +@@ -818,6 +824,15 @@ gcm_session_output_set_gamma (GnomeRROutput *output, + + /* send to LUT */ + crtc = gnome_rr_output_get_crtc (output); ++ if (crtc == NULL) { ++ ret = FALSE; ++ g_set_error (error, ++ GSD_COLOR_MANAGER_ERROR, ++ GSD_COLOR_MANAGER_ERROR_FAILED, ++ "failed to get ctrc for %s", ++ gnome_rr_output_get_name (output)); ++ goto out; ++ } + gnome_rr_crtc_set_gamma (crtc, array->len, + red, green, blue); + out: +@@ -833,11 +848,19 @@ gcm_session_device_set_gamma (GnomeRROutput *output, + GError **error) + { + gboolean ret = FALSE; ++ guint size; + GPtrArray *clut = NULL; + + /* create a lookup table */ +- clut = gcm_session_generate_vcgt (profile, +- gnome_rr_output_get_gamma_size (output)); ++ size = gnome_rr_output_get_gamma_size (output); ++ if (size == 0) { ++ g_set_error_literal (error, ++ GSD_COLOR_MANAGER_ERROR, ++ GSD_COLOR_MANAGER_ERROR_FAILED, ++ "gamma size is zero"); ++ goto out; ++ } ++ clut = gcm_session_generate_vcgt (profile, size); + if (clut == NULL) { + g_set_error_literal (error, + GSD_COLOR_MANAGER_ERROR, +@@ -871,6 +894,14 @@ gcm_session_device_reset_gamma (GnomeRROutput *output, + g_debug ("falling back to dummy ramp"); + clut = g_ptr_array_new_with_free_func (g_free); + size = gnome_rr_output_get_gamma_size (output); ++ if (size == 0) { ++ ret = FALSE; ++ g_set_error_literal (error, ++ GSD_COLOR_MANAGER_ERROR, ++ GSD_COLOR_MANAGER_ERROR_FAILED, ++ "gamma size is zero"); ++ goto out; ++ } + for (i = 0; i < size; i++) { + value = (i * 0xffff) / (size - 1); + data = g_new0 (GnomeRROutputClutItem, 1); +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0013-color-Reset-the-gamma-tables-when-the-screen-configu.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0013-color-Reset-the-gamma-tables-when-the-screen-configu.patch new file mode 100644 index 00000000..65e372be --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0013-color-Reset-the-gamma-tables-when-the-screen-configu.patch @@ -0,0 +1,103 @@ +From a837c01a6c0cbbb0a135b4d130ecec027b2dcb8a Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Tue, 27 Sep 2011 18:16:44 +0100 +Subject: [PATCH 6/8] color: Reset the gamma tables when the screen + configuration changes + +We have to reset the gamma tables each time, as if the primary output +has changed then different crtcs are going to be used. + +This prevents the profile VCGT being used on the wrong monitor. + +Resolves https://bugzilla.gnome.org/show_bug.cgi?id=660164 +--- + plugins/color/gsd-color-manager.c | 66 +++++++++++++++++++++++++++++++++++++ + 1 files changed, 66 insertions(+), 0 deletions(-) + +diff --git a/plugins/color/gsd-color-manager.c b/plugins/color/gsd-color-manager.c +index c2221e9..6fe086e 100644 +--- a/plugins/color/gsd-color-manager.c ++++ b/plugins/color/gsd-color-manager.c +@@ -1398,6 +1398,69 @@ out: + } + + static void ++gcm_session_profile_gamma_find_device_cb (GObject *object, ++ GAsyncResult *res, ++ gpointer user_data) ++{ ++ CdClient *client = CD_CLIENT (object); ++ CdDevice *device = NULL; ++ GError *error = NULL; ++ GsdColorManager *manager = GSD_COLOR_MANAGER (user_data); ++ ++ device = cd_client_find_device_by_property_finish (client, ++ res, ++ &error); ++ if (device == NULL) { ++ g_warning ("not found device %s: %s", ++ cd_device_get_id (device), ++ error->message); ++ g_error_free (error); ++ goto out; ++ } ++ ++ /* get properties */ ++ cd_device_connect (device, ++ NULL, ++ gcm_session_device_assign_connect_cb, ++ manager); ++out: ++ if (device != NULL) ++ g_object_unref (device); ++} ++ ++/* We have to reset the gamma tables each time as if the primary output ++ * has changed then different crtcs are going to be used. ++ * See https://bugzilla.gnome.org/show_bug.cgi?id=660164 for an example */ ++static void ++gnome_rr_screen_output_changed_cb (GnomeRRScreen *screen, ++ GsdColorManager *manager) ++{ ++ GnomeRROutput **outputs; ++ GsdColorManagerPrivate *priv = manager->priv; ++ guint i; ++ ++ /* get X11 outputs */ ++ outputs = gnome_rr_screen_list_outputs (priv->x11_screen); ++ if (outputs == NULL) { ++ g_warning ("failed to get outputs"); ++ return; ++ } ++ for (i = 0; outputs[i] != NULL; i++) { ++ if (!gnome_rr_output_is_connected (outputs[i])) ++ continue; ++ ++ /* get CdDevice for this output */ ++ cd_client_find_device_by_property (manager->priv->client, ++ CD_DEVICE_METADATA_XRANDR_NAME, ++ gnome_rr_output_get_name (outputs[i]), ++ NULL, ++ gcm_session_profile_gamma_find_device_cb, ++ manager); ++ } ++ ++} ++ ++static void + gcm_session_client_connect_cb (GObject *source_object, + GAsyncResult *res, + gpointer user_data) +@@ -1456,6 +1519,9 @@ gcm_session_client_connect_cb (GObject *source_object, + g_signal_connect (priv->x11_screen, "output-disconnected", + G_CALLBACK (gnome_rr_screen_output_removed_cb), + manager); ++ g_signal_connect (priv->x11_screen, "changed", ++ G_CALLBACK (gnome_rr_screen_output_changed_cb), ++ manager); + + g_signal_connect (priv->client, "profile-added", + G_CALLBACK (gcm_session_profile_added_assign_cb), +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0014-power-Ensure-the-DPMS-state-is-on-at-startup.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0014-power-Ensure-the-DPMS-state-is-on-at-startup.patch new file mode 100644 index 00000000..704729ad --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0014-power-Ensure-the-DPMS-state-is-on-at-startup.patch @@ -0,0 +1,42 @@ +From 47b210a74dc68917736730c11abc97a0650d4cb2 Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Mon, 3 Oct 2011 16:31:07 +0100 +Subject: [PATCH 7/8] power: Ensure the DPMS state is 'on' at startup + +This also has the side-effect of disabling the default DPMS timeouts the session may have set. + +Resolves https://bugzilla.gnome.org/show_bug.cgi?id=660482 +--- + plugins/power/gsd-power-manager.c | 9 +++++++++ + 1 files changed, 9 insertions(+), 0 deletions(-) + +diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c +index a1bc213..ae7cfb3 100644 +--- a/plugins/power/gsd-power-manager.c ++++ b/plugins/power/gsd-power-manager.c +@@ -3293,6 +3293,8 @@ gboolean + gsd_power_manager_start (GsdPowerManager *manager, + GError **error) + { ++ gboolean ret; ++ + g_debug ("Starting power manager"); + gnome_settings_profile_start (NULL); + +@@ -3440,6 +3442,13 @@ gsd_power_manager_start (GsdPowerManager *manager, + if (manager->priv->x11_screen == NULL) + return FALSE; + ++ /* ensure the default dpms timeouts are cleared */ ++ ret = gnome_rr_screen_set_dpms_mode (manager->priv->x11_screen, ++ GNOME_RR_DPMS_ON, ++ error); ++ if (!ret) ++ return FALSE; ++ + /* coldplug the engine */ + engine_coldplug (manager); + idle_evaluate (manager); +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/3.2.0/0015-color-Fix-make-check-by-including-lm-for-powf.patch b/gnome-base/gnome-settings-daemon/files/3.2.0/0015-color-Fix-make-check-by-including-lm-for-powf.patch new file mode 100644 index 00000000..32713983 --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/3.2.0/0015-color-Fix-make-check-by-including-lm-for-powf.patch @@ -0,0 +1,26 @@ +From 153950e1a5d3ec61be5275c8286067561cfd3ffc Mon Sep 17 00:00:00 2001 +From: Richard Hughes <richard@hughsie.com> +Date: Mon, 3 Oct 2011 17:53:49 +0100 +Subject: [PATCH 8/8] color: Fix 'make check' by including -lm for powf() + +--- + plugins/color/Makefile.am | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/plugins/color/Makefile.am b/plugins/color/Makefile.am +index 6d80602..fd68ac0 100644 +--- a/plugins/color/Makefile.am ++++ b/plugins/color/Makefile.am +@@ -69,7 +69,8 @@ gcm_self_test_SOURCES = \ + gcm_self_test_LDADD = \ + $(COLORD_LIBS) \ + $(LCMS_LIBS) \ +- $(SETTINGS_PLUGIN_LIBS) ++ $(SETTINGS_PLUGIN_LIBS) \ ++ -lm + + TESTS = gcm-self-test + +-- +1.7.7 + diff --git a/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.2.0-color-unbreak-loading-profiles.patch b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.2.0-color-unbreak-loading-profiles.patch new file mode 100644 index 00000000..370cfc5e --- /dev/null +++ b/gnome-base/gnome-settings-daemon/files/gnome-settings-daemon-3.2.0-color-unbreak-loading-profiles.patch @@ -0,0 +1,41 @@ +From e46d34f5bd9b0260a204d5f8a9d23c747b61923f Mon Sep 17 00:00:00 2001 +From: Cosimo Cecchi <cosimoc@gnome.org> +Date: Mon, 3 Oct 2011 10:02:34 -0400 +Subject: [PATCH] color: unbreak loading profiles at startup + +A recent commit broke color profile loading at startup if the profile +directory exists already. Fix this. + +https://bugzilla.gnome.org/show_bug.cgi?id=660790 + +Signed-off-by: Richard Hughes <richard@hughsie.com> + +[Alexandre Rostovtsev <tetromino@gmail.com>: backported to 3.2] +--- + plugins/color/gcm-profile-store.c | 5 +++-- + 1 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/plugins/color/gcm-profile-store.c b/plugins/color/gcm-profile-store.c +index 3dde406..f8b0889 100644 +--- a/plugins/color/gcm-profile-store.c ++++ b/plugins/color/gcm-profile-store.c +@@ -445,13 +445,14 @@ gcm_profile_store_search (GcmProfileStore *profile_store) + /* get Linux per-user profiles */ + path = g_build_filename (g_get_user_data_dir (), "icc", NULL); + ret = gcm_profile_store_mkdir_with_parents (path, &error); +- if (!ret) { ++ if (!ret && ++ !g_error_matches (error, G_IO_ERROR, G_IO_ERROR_EXISTS)) { + g_warning ("failed to create directory on startup: %s", error->message); +- g_error_free (error); + } else { + gcm_profile_store_search_path (profile_store, path, 0); + } + g_free (path); ++ g_clear_error (&error); + + /* get per-user profiles from obsolete location */ + path = g_build_filename (g_get_home_dir (), ".color", "icc", NULL); +-- +1.7.7 + |