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)); ++ } + } + }, +