[arch-commits] Commit in xfce4-settings/trunk (3 files)
Evangelos Foutras
foutrelis at archlinux.org
Mon Aug 19 23:11:55 UTC 2019
Date: Monday, August 19, 2019 @ 23:11:54
Author: foutrelis
Revision: 359966
upgpkg: xfce4-settings 4.14.0-2
Apply upstream fix for crashes in multi-monitor setups (FS#63449).
Added:
xfce4-settings/trunk/0001-display-Assure-correct-gchar-Bug-15816.patch
xfce4-settings/trunk/0002-display-Fix-profile-matching-in-xfsettingsd.patch
Modified:
xfce4-settings/trunk/PKGBUILD
--------------------------------------------------------+
0001-display-Assure-correct-gchar-Bug-15816.patch | 103 +++++++++++++++
0002-display-Fix-profile-matching-in-xfsettingsd.patch | 54 +++++++
PKGBUILD | 14 +-
3 files changed, 168 insertions(+), 3 deletions(-)
Added: 0001-display-Assure-correct-gchar-Bug-15816.patch
===================================================================
--- 0001-display-Assure-correct-gchar-Bug-15816.patch (rev 0)
+++ 0001-display-Assure-correct-gchar-Bug-15816.patch 2019-08-19 23:11:54 UTC (rev 359966)
@@ -0,0 +1,103 @@
+From ae8221b23f72f62276bd0a0ffe129329b217a612 Mon Sep 17 00:00:00 2001
+From: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
+Date: Mon, 19 Aug 2019 18:09:48 +0200
+Subject: [PATCH 1/2] display: Assure correct gchar** (Bug #15816)
+
+---
+ common/display-profiles.c | 7 +------
+ dialogs/display-settings/main.c | 5 ++++-
+ xfsettingsd/displays.c | 6 +++++-
+ 3 files changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/common/display-profiles.c b/common/display-profiles.c
+index 2265a223..1aab530e 100644
+--- a/common/display-profiles.c
++++ b/common/display-profiles.c
+@@ -108,7 +108,7 @@ display_settings_get_profiles (gchar **display_infos, XfconfChannel *channel)
+ continue;
+ }
+
+- profile_name = g_strdup_printf ("%s", *(current_elements+1));
++ profile_name = g_strdup_printf ("%s", *(current_elements + 1));
+ g_strfreev (current_elements);
+
+ /* Walk through the profile and check if every EDID referenced there is also currently available */
+@@ -162,11 +162,6 @@ display_settings_get_profiles (gchar **display_infos, XfconfChannel *channel)
+ g_free (profile_name);
+ }
+
+- for (m = 0; m < noutput; ++m)
+- {
+- g_free (display_infos[m]);
+- }
+- g_free (display_infos);
+ g_list_free (channel_contents);
+ g_hash_table_destroy (properties);
+
+diff --git a/dialogs/display-settings/main.c b/dialogs/display-settings/main.c
+index bbabfaaa..dc528483 100644
+--- a/dialogs/display-settings/main.c
++++ b/dialogs/display-settings/main.c
+@@ -1264,12 +1264,13 @@ display_settings_get_display_infos (void)
+ gchar **display_infos;
+ guint m;
+
+- display_infos = g_new0 (gchar *, xfce_randr->noutput);
++ display_infos = g_new0 (gchar *, xfce_randr->noutput + 1);
+ /* get all display edids, to only query randr once */
+ for (m = 0; m < xfce_randr->noutput; ++m)
+ {
+ display_infos[m] = g_strdup_printf ("%s", xfce_randr_get_edid (xfce_randr, m));
+ }
++
+ return display_infos;
+ }
+
+@@ -1286,6 +1287,7 @@ display_settings_minimal_profile_populate (GtkBuilder *builder)
+
+ display_infos = display_settings_get_display_infos ();
+ profiles = display_settings_get_profiles (display_infos, display_channel);
++ g_strfreev (display_infos);
+
+ current = g_list_first (profiles);
+ while (current)
+@@ -1386,6 +1388,7 @@ display_settings_profile_list_populate (GtkBuilder *builder)
+
+ display_infos = display_settings_get_display_infos ();
+ profiles = display_settings_get_profiles (display_infos, display_channel);
++ g_strfreev (display_infos);
+
+ /* Populate treeview */
+ current = g_list_first (profiles);
+diff --git a/xfsettingsd/displays.c b/xfsettingsd/displays.c
+index 4933ca40..289ff206 100644
+--- a/xfsettingsd/displays.c
++++ b/xfsettingsd/displays.c
+@@ -444,7 +444,7 @@ xfce_displays_helper_get_display_infos (gint noutput,
+ gint m;
+ guint8 *edid_data;
+
+- display_infos = g_new0 (gchar *, noutput);
++ display_infos = g_new0 (gchar *, noutput + 1);
+ /* get all display edids, to only query randr once */
+ for (m = 0; m < noutput; ++m)
+ {
+@@ -452,7 +452,10 @@ xfce_displays_helper_get_display_infos (gint noutput,
+
+ if (edid_data)
+ display_infos[m] = g_compute_checksum_for_data (G_CHECKSUM_SHA1 , edid_data, 128);
++ else
++ display_infos[m] = g_strdup ("");
+ }
++
+ return display_infos;
+ }
+
+@@ -473,6 +476,7 @@ xfce_displays_helper_get_matching_profile (XfceDisplaysHelper *helper)
+ if (display_infos)
+ {
+ profiles = display_settings_get_profiles (display_infos, helper->channel);
++ g_strfreev (display_infos);
+ }
+
+ if (profiles == NULL)
Added: 0002-display-Fix-profile-matching-in-xfsettingsd.patch
===================================================================
--- 0002-display-Fix-profile-matching-in-xfsettingsd.patch (rev 0)
+++ 0002-display-Fix-profile-matching-in-xfsettingsd.patch 2019-08-19 23:11:54 UTC (rev 359966)
@@ -0,0 +1,54 @@
+From 41dec5a0e2ac07676dffa1e3d5fc6f215a0c074d Mon Sep 17 00:00:00 2001
+From: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
+Date: Mon, 19 Aug 2019 18:11:31 +0200
+Subject: [PATCH 2/2] display: Fix profile matching in xfsettingsd
+
+Previously the code (erroneously) checked the CRTCs instead of the
+Outputs, which meant that sometimes no EDID would be found (which is to
+be expected) or the amount of CRTCs would differ from the amount of
+Outputs, so the for loop would be messed up.
+---
+ xfsettingsd/displays.c | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/xfsettingsd/displays.c b/xfsettingsd/displays.c
+index 289ff206..2efefa8e 100644
+--- a/xfsettingsd/displays.c
++++ b/xfsettingsd/displays.c
+@@ -436,9 +436,9 @@ xfce_displays_helper_reload (XfceDisplaysHelper *helper)
+
+
+ static gchar **
+-xfce_displays_helper_get_display_infos (gint noutput,
+- Display *xdisplay,
+- RROutput *outputs)
++xfce_displays_helper_get_display_infos (gint noutput,
++ Display *xdisplay,
++ GPtrArray *outputs)
+ {
+ gchar **display_infos;
+ gint m;
+@@ -448,7 +448,10 @@ xfce_displays_helper_get_display_infos (gint noutput,
+ /* get all display edids, to only query randr once */
+ for (m = 0; m < noutput; ++m)
+ {
+- edid_data = xfce_randr_read_edid_data (xdisplay, outputs[m]);
++ XfceRROutput *output;
++
++ output = g_ptr_array_index (outputs, m);
++ edid_data = xfce_randr_read_edid_data (xdisplay, output->id);
+
+ if (edid_data)
+ display_infos[m] = g_compute_checksum_for_data (G_CHECKSUM_SHA1 , edid_data, 128);
+@@ -470,9 +473,9 @@ xfce_displays_helper_get_matching_profile (XfceDisplaysHelper *helper)
+ gchar *property;
+ gchar **display_infos;
+
+- display_infos = xfce_displays_helper_get_display_infos (helper->resources->noutput,
++ display_infos = xfce_displays_helper_get_display_infos (helper->outputs->len,
+ helper->xdisplay,
+- helper->resources->outputs);
++ helper->outputs);
+ if (display_infos)
+ {
+ profiles = display_settings_get_profiles (display_infos, helper->channel);
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2019-08-19 20:48:53 UTC (rev 359965)
+++ PKGBUILD 2019-08-19 23:11:54 UTC (rev 359966)
@@ -4,7 +4,7 @@
pkgname=xfce4-settings
pkgver=4.14.0
-pkgrel=1
+pkgrel=2
pkgdesc="Settings manager of the Xfce desktop"
arch=('x86_64')
url="https://www.xfce.org/"
@@ -11,17 +11,25 @@
license=('GPL2')
groups=('xfce4')
depends=('exo' 'garcon' 'libxfce4ui' 'xfconf' 'libnotify' 'colord'
- 'libxklavier' 'adwaita-icon-theme' 'gnome-themes-standard')
+ 'libxklavier' 'adwaita-icon-theme' 'gnome-themes-extra')
makedepends=('intltool' 'xf86-input-libinput')
optdepends=('libcanberra: for sound control')
source=(https://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2
+ 0001-display-Assure-correct-gchar-Bug-15816.patch
+ 0002-display-Fix-profile-matching-in-xfsettingsd.patch
default-xsettings-xml.patch)
sha256sums=('e03040d623abda0222ad04f226582277a1936507ddfa927ec8e87927debc113c'
+ '48ef9711f7f84370d5e39792ffed818452358f5ccacf11ff06ed1abc02e775e6'
+ '667c914ce8fe058df5217bab15e06d0034b049e025870ae72135e5e3c415eb63'
'8e9a6c70ab0ceb5d91b637dc290768f8a47edb5d7b6e2eebc4459dbc4ee040d7')
prepare() {
cd "$srcdir/$pkgname-$pkgver"
- # Enable GNOME icon theme, Adwaita theme and font hinting by default
+ # https://bugzilla.xfce.org/show_bug.cgi?id=15816
+ patch -Np1 -i ../0001-display-Assure-correct-gchar-Bug-15816.patch
+ patch -Np1 -i ../0002-display-Fix-profile-matching-in-xfsettingsd.patch
+
+ # Enable Adwaita theme and font hinting by default
patch -Np1 -i "$srcdir/default-xsettings-xml.patch"
}
More information about the arch-commits
mailing list