Date: Wednesday, April 18, 2018 @ 07:50:59 Author: zorun Revision: 316849
upgpkg: ring-gnome 3:20180414.2.2c51f89-2 Fix FS#58234 (segfault issue) Added: ring-gnome/trunk/0001-settings-check-if-g_get_user_special_dir-fails.patch Modified: ring-gnome/trunk/PKGBUILD -----------------------------------------------------------+ 0001-settings-check-if-g_get_user_special_dir-fails.patch | 36 ++++++++++++ PKGBUILD | 13 +++- 2 files changed, 46 insertions(+), 3 deletions(-) Added: 0001-settings-check-if-g_get_user_special_dir-fails.patch =================================================================== --- 0001-settings-check-if-g_get_user_special_dir-fails.patch (rev 0) +++ 0001-settings-check-if-g_get_user_special_dir-fails.patch 2018-04-18 07:50:59 UTC (rev 316849) @@ -0,0 +1,36 @@ +From 1946b536d75fc47f16bf3accb9b18c98145280b1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=A9bastien=20Blin?= + <sebastien.b...@savoirfairelinux.com> +Date: Tue, 17 Apr 2018 09:47:47 -0400 +Subject: [PATCH] settings: check if g_get_user_special_dir fails + +g_get_user_special_dir can return a nullptr, so the string +construction will fails badly. Must be checked or fallback to +G_USER_DIRECTORY_DESKTOP ($HOME/Desktop) + +Change-Id: I04b72221f14091db2cfd880a9b35b8ab92e46ae4 +Reviewed-by: Philippe Gorley <philippe.gor...@savoirfairelinux.com> +--- + src/generalsettingsview.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/generalsettingsview.cpp b/src/generalsettingsview.cpp +index 4c6a15a..4fa2d9c 100644 +--- a/src/generalsettingsview.cpp ++++ b/src/generalsettingsview.cpp +@@ -248,7 +248,11 @@ general_settings_view_init(GeneralSettingsView *self) + auto* download_directory_variant = g_settings_get_value(priv->settings, "download-folder"); + char* download_directory_value; + g_variant_get(download_directory_variant, "&s", &download_directory_value); +- std::string default_download_dir = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD); ++ std::string default_download_dir = {}; ++ if (auto* directory = g_get_user_special_dir (G_USER_DIRECTORY_DOWNLOAD)) ++ default_download_dir = directory; ++ else ++ default_download_dir = g_get_user_special_dir (G_USER_DIRECTORY_DESKTOP); + auto current_value = std::string(download_directory_value); + if (current_value.empty()) { + g_settings_set_value(priv->settings, "download-folder", g_variant_new("s", default_download_dir.c_str())); +-- +2.17.0 + Modified: PKGBUILD =================================================================== --- PKGBUILD 2018-04-18 07:43:38 UTC (rev 316848) +++ PKGBUILD 2018-04-18 07:50:59 UTC (rev 316849) @@ -2,7 +2,7 @@ pkgname=ring-gnome pkgver=20180414.2.2c51f89 -pkgrel=1 +pkgrel=2 epoch=3 pkgdesc="Ring is a free and universal communication platform which preserves the users' privacy and freedoms (GNOME client)" arch=("x86_64") @@ -14,9 +14,16 @@ "qt5-base" "gtk-update-icon-cache" "desktop-file-utils" "evolution-data-server" "libnotify" "libcanberra" "libnm") makedepends=('git' 'cmake') -source=("git+https://gerrit-ring.savoirfairelinux.com/ring-client-gnome#commit=1e2dd354a324c37561500440524864d778f3b614") -sha256sums=('SKIP') +source=("git+https://gerrit-ring.savoirfairelinux.com/ring-client-gnome#commit=1e2dd354a324c37561500440524864d778f3b614" + "0001-settings-check-if-g_get_user_special_dir-fails.patch") +sha256sums=('SKIP' + 'f6e36863d5d4e7a6d7e5a29abb46a674186f2842dadea28ab1fd57a267b0bc5b') +prepare() { + cd "${srcdir}/ring-client-gnome" + patch -p1 < "${srcdir}/0001-settings-check-if-g_get_user_special_dir-fails.patch" +} + build() { cd "ring-client-gnome"