From 90b5961696121748f98de45772df18a590be50c2 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Mon, 2 Feb 2015 11:57:49 -0800 Subject: [PATCH] backport ad90b7dd to fix BGO #743412 / RHBZ #1185811 --- ...Initialize-MetaOutput-even-when-we-c.patch | 76 +++++++++++++++++++ mutter.spec | 8 +- 2 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch diff --git a/0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch b/0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch new file mode 100644 index 0000000..e085b3d --- /dev/null +++ b/0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch @@ -0,0 +1,76 @@ +From ad90b7dd2f0eec6c9966e83742e7bfddcea19f76 Mon Sep 17 00:00:00 2001 +From: Rui Matos +Date: Fri, 23 Jan 2015 17:32:21 +0100 +Subject: [PATCH 1/6] monitor-manager: Initialize MetaOutput even when we can't + get the EDID + +Otherwise we'll crash later when building a MetaConfiguration. + +https://bugzilla.gnome.org/show_bug.cgi?id=743412 +--- + src/backends/meta-monitor-manager.c | 4 ++++ + src/backends/native/meta-monitor-manager-kms.c | 7 ++----- + src/backends/x11/meta-monitor-manager-xrandr.c | 7 ++----- + 3 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c +index 3f11716..352a182 100644 +--- a/src/backends/meta-monitor-manager.c ++++ b/src/backends/meta-monitor-manager.c +@@ -1230,6 +1230,9 @@ meta_output_parse_edid (MetaOutput *meta_output, + MonitorInfo *parsed_edid; + gsize len; + ++ if (!edid) ++ goto out; ++ + parsed_edid = decode_edid (g_bytes_get_data (edid, &len)); + + if (parsed_edid) +@@ -1247,6 +1250,7 @@ meta_output_parse_edid (MetaOutput *meta_output, + g_free (parsed_edid); + } + ++ out: + if (!meta_output->vendor) + { + meta_output->vendor = g_strdup ("unknown"); +diff --git a/src/backends/native/meta-monitor-manager-kms.c b/src/backends/native/meta-monitor-manager-kms.c +index 13709f1..9efba75 100644 +--- a/src/backends/native/meta-monitor-manager-kms.c ++++ b/src/backends/native/meta-monitor-manager-kms.c +@@ -512,11 +512,8 @@ meta_monitor_manager_kms_read_current (MetaMonitorManager *manager) + find_properties (manager_kms, output_kms); + + edid = read_output_edid (manager_kms, meta_output); +- if (edid) +- { +- meta_output_parse_edid (meta_output, edid); +- g_bytes_unref (edid); +- } ++ meta_output_parse_edid (meta_output, edid); ++ g_bytes_unref (edid); + + /* MetaConnectorType matches DRM's connector types */ + meta_output->connector_type = (MetaConnectorType) connector->connector_type; +diff --git a/src/backends/x11/meta-monitor-manager-xrandr.c b/src/backends/x11/meta-monitor-manager-xrandr.c +index 03b4152..d950592 100644 +--- a/src/backends/x11/meta-monitor-manager-xrandr.c ++++ b/src/backends/x11/meta-monitor-manager-xrandr.c +@@ -693,11 +693,8 @@ meta_monitor_manager_xrandr_read_current (MetaMonitorManager *manager) + meta_output->name = g_strdup (output->name); + + edid = read_output_edid (manager_xrandr, meta_output->winsys_id); +- if (edid) +- { +- meta_output_parse_edid (meta_output, edid); +- g_bytes_unref (edid); +- } ++ meta_output_parse_edid (meta_output, edid); ++ g_bytes_unref (edid); + + meta_output->width_mm = output->mm_width; + meta_output->height_mm = output->mm_height; +-- +2.2.2 + diff --git a/mutter.spec b/mutter.spec index a57f332..a530c2e 100644 --- a/mutter.spec +++ b/mutter.spec @@ -2,7 +2,7 @@ Name: mutter Version: 3.15.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Window and compositing manager based on Clutter Group: User Interface/Desktops @@ -12,6 +12,8 @@ URL: http://www.gnome.org Source0: http://download.gnome.org/sources/%{name}/3.15/%{name}-%{version}.tar.xz Patch0: dont-depend-on-unreleased-wayland.patch +# Backport ad90b7dd to fix BGO #743412 / RHBZ #1185811 +Patch1: 0001-monitor-manager-Initialize-MetaOutput-even-when-we-c.patch BuildRequires: clutter-devel >= %{clutter_version} BuildRequires: pango-devel @@ -95,6 +97,7 @@ the functionality of the installed %{name} package. %prep %setup -q %patch0 -p1 -b .dont-depend-on-unreleased-wayland +%patch1 -p1 -b .metaoutput-initialize %build autoreconf -f -i @@ -165,6 +168,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_datadir}/mutter/tests %changelog +* Mon Feb 02 2015 Adam Williamson - 3.15.4-2 +- backport ad90b7dd to fix BGO #743412 / RHBZ #1185811 + * Wed Jan 21 2015 Florian Müllner - 3.15.4-1 - Update to 3.15.4