Package: release.debian.org
Severity: normal
Tags: buster
User: release.debian....@packages.debian.org
Usertags: pu

[ Reason ]

Belatedly fixing #935090 as requested by an upstream developer

[ Impact ]

If an invalid location is saved in dconf/GSettings, gnome-weather would
crash on startup, from which users cannot recover through the UI.

[ Tests ]

Manually tested on a Debian 10 system

[ Risks ]

Low-risk change:
- the fix has been in unstable for a long time without bug reports
- a version functionally equivalent to this one (3.26.0-6) was in unstable
  for a month without bug reports
- gnome-weather is unlikely to be a critical part of anyone's workflow

[ Checklist ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]

- d/patches: The actual bug fix, from upstream
- d/gbp.conf: Switch branches for stable updates
diffstat for gnome-weather-3.26.0 gnome-weather-3.26.0

 changelog                                                               |   25 +++++++
 gbp.conf                                                                |    4 -
 patches/app-Use-find_nearest_city-instead-of-new_detached.patch         |   34 ++++++++++
 patches/series                                                          |    2 
 patches/shared-world.js-don-t-use-detached-location-from-settings.patch |   31 +++++++++
 5 files changed, 94 insertions(+), 2 deletions(-)

diff -Nru gnome-weather-3.26.0/debian/changelog gnome-weather-3.26.0/debian/changelog
--- gnome-weather-3.26.0/debian/changelog	2018-10-10 01:52:46.000000000 +0100
+++ gnome-weather-3.26.0/debian/changelog	2020-09-13 14:13:06.000000000 +0100
@@ -1,3 +1,28 @@
+gnome-weather (3.26.0-6~deb10u1) buster; urgency=medium
+
+  * Team upload
+  * Upload to stable to fix #935090
+  * d/gbp.conf: Set packaging and upstream branches for Debian 10
+    stable updates
+
+ -- Simon McVittie <s...@debian.org>  Sun, 13 Sep 2020 14:13:06 +0100
+
+gnome-weather (3.26.0-6) unstable; urgency=medium
+
+  * Team upload
+  * d/p/app-Use-find_nearest_city-instead-of-new_detached.patch,
+    d/p/shared-world.js-don-t-use-detached-location-from-settings.patch:
+    Add patches from version 3.32.1 to prevent a crash when the locations
+    configured are invalid.
+    In particular, this is a prerequisite for correcting the airport code
+    for Lima in #935075, because otherwise, gnome-weather would read the
+    old airport code from dconf on startup, and crash.
+    Thanks to Diego Escalante Urrelo. (Closes: #935090)
+  * d/gbp.conf: Set packaging branch to debian/unstable.
+    debian/master is now tracking newer GNOME releases.
+
+ -- Simon McVittie <s...@debian.org>  Mon, 19 Aug 2019 19:02:55 +0100
+
 gnome-weather (3.26.0-5) unstable; urgency=medium
 
   * Update Vcs fields for migration to https://salsa.debian.org/
diff -Nru gnome-weather-3.26.0/debian/gbp.conf gnome-weather-3.26.0/debian/gbp.conf
--- gnome-weather-3.26.0/debian/gbp.conf	2018-10-10 01:52:46.000000000 +0100
+++ gnome-weather-3.26.0/debian/gbp.conf	2020-09-13 14:13:06.000000000 +0100
@@ -1,7 +1,7 @@
 [DEFAULT]
 pristine-tar = True
-debian-branch = debian/master
-upstream-branch = upstream/latest
+debian-branch = debian/buster
+upstream-branch = upstream/3.26.x
 
 [buildpackage]
 sign-tags = True
diff -Nru gnome-weather-3.26.0/debian/patches/app-Use-find_nearest_city-instead-of-new_detached.patch gnome-weather-3.26.0/debian/patches/app-Use-find_nearest_city-instead-of-new_detached.patch
--- gnome-weather-3.26.0/debian/patches/app-Use-find_nearest_city-instead-of-new_detached.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-weather-3.26.0/debian/patches/app-Use-find_nearest_city-instead-of-new_detached.patch	2020-09-13 14:13:06.000000000 +0100
@@ -0,0 +1,34 @@
+From: Christopher Davis <brainblas...@disroot.org>
+Date: Tue, 19 Mar 2019 15:20:41 -0700
+Subject: app: Use find_nearest_city() instead of new_detached()
+
+GWeather.Location.new_detached() can return a value that
+cannot be serialized after being serialized.
+
+We can use find_nearest_city() in place of it for now.
+
+Fixes https://gitlab.gnome.org/GNOME/gnome-weather/issues/25
+---
+ src/app/currentLocationController.js | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/src/app/currentLocationController.js b/src/app/currentLocationController.js
+index ea88800..c3f5e9d 100644
+--- a/src/app/currentLocationController.js
++++ b/src/app/currentLocationController.js
+@@ -84,10 +84,11 @@ var CurrentLocationController = class CurrentLocationController {
+     _onLocationUpdated(simple) {
+         let geoclueLocation = simple.get_location();
+ 
+-        this.currentLocation = GWeather.Location.new_detached(geoclueLocation.description,
+-                                                              null,
+-                                                              geoclueLocation.latitude,
+-                                                              geoclueLocation.longitude);
++        this.currentLocation = GWeather.Location.get_world()
++                                                .find_nearest_city(
++                                                    geoclueLocation.latitude,
++                                                    geoclueLocation.longitude
++                                                );
+         this._world.currentLocationChanged(this.currentLocation);
+     }
+ 
diff -Nru gnome-weather-3.26.0/debian/patches/series gnome-weather-3.26.0/debian/patches/series
--- gnome-weather-3.26.0/debian/patches/series	1970-01-01 01:00:00.000000000 +0100
+++ gnome-weather-3.26.0/debian/patches/series	2020-09-13 14:13:06.000000000 +0100
@@ -0,0 +1,2 @@
+app-Use-find_nearest_city-instead-of-new_detached.patch
+shared-world.js-don-t-use-detached-location-from-settings.patch
diff -Nru gnome-weather-3.26.0/debian/patches/shared-world.js-don-t-use-detached-location-from-settings.patch gnome-weather-3.26.0/debian/patches/shared-world.js-don-t-use-detached-location-from-settings.patch
--- gnome-weather-3.26.0/debian/patches/shared-world.js-don-t-use-detached-location-from-settings.patch	1970-01-01 01:00:00.000000000 +0100
+++ gnome-weather-3.26.0/debian/patches/shared-world.js-don-t-use-detached-location-from-settings.patch	2020-09-13 14:13:06.000000000 +0100
@@ -0,0 +1,31 @@
+From: Christopher Davis <brainblas...@disroot.org>
+Date: Thu, 21 Mar 2019 16:50:20 -0700
+Subject: shared/world.js: don't use detached location from settings
+
+---
+ src/shared/world.js | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/shared/world.js b/src/shared/world.js
+index 5752b2c..a582147 100644
+--- a/src/shared/world.js
++++ b/src/shared/world.js
+@@ -106,9 +106,15 @@ var WorldModel = new Lang.Class({
+         let info = null;
+         for (let i = locations.length - 1; i >= 0; i--) {
+             let variant = locations[i];
+-            let location = this._world.deserialize(variant);
+-
+-            info = this._addLocationInternal(location, false);
++            let world = this._world.deserialize(variant);
++            if (world != null) {
++                let coords = world.get_coords();
++                let location = this._world.find_nearest_city(coords[0], coords[1]);
++
++                info = this._addLocationInternal(location, false);
++            } else {
++                log('Failed to deserialize location from GVariant:' + variant.print(true));
++            }
+         }
+     },
+ 

Reply via email to