Merged update from upstream sources
This is an automated DistroBaker update from upstream sources. If you do not know what this is about or would like to opt out, contact the OSCI team. Source: https://src.fedoraproject.org/rpms/gnome-software.git#75366111674a11c45528a9e5224aebdf99452a0e
This commit is contained in:
parent
504688b143
commit
a8cd4bcb75
1
.gitignore
vendored
1
.gitignore
vendored
@ -116,3 +116,4 @@
|
|||||||
/gnome-software-3.38.1.tar.xz
|
/gnome-software-3.38.1.tar.xz
|
||||||
/gnome-software-40.beta.tar.xz
|
/gnome-software-40.beta.tar.xz
|
||||||
/gnome-software-40.rc.tar.xz
|
/gnome-software-40.rc.tar.xz
|
||||||
|
/gnome-software-40.0.tar.xz
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
From 81a2e01d407fc903a83b4c1a82749d2591397240 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
Date: Tue, 16 Mar 2021 13:33:40 +0000
|
|
||||||
Subject: [PATCH 1/4] gs-app: Add additional icon debug information
|
|
||||||
|
|
||||||
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
---
|
|
||||||
lib/gs-app.c | 5 +++--
|
|
||||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/gs-app.c b/lib/gs-app.c
|
|
||||||
index 771743330..cb2549d4c 100644
|
|
||||||
--- a/lib/gs-app.c
|
|
||||||
+++ b/lib/gs-app.c
|
|
||||||
@@ -1828,11 +1828,12 @@ gs_app_get_icon_for_size (GsApp *app,
|
|
||||||
* lazily created. */
|
|
||||||
for (guint i = 0; priv->icons != NULL && i < priv->icons->len; i++) {
|
|
||||||
GIcon *icon = priv->icons->pdata[i];
|
|
||||||
+ g_autofree gchar *icon_str = g_icon_to_string (icon);
|
|
||||||
guint icon_width = gs_icon_get_width (icon);
|
|
||||||
guint icon_scale = gs_icon_get_scale (icon);
|
|
||||||
|
|
||||||
- g_debug ("\tConsidering icon of type %s, width %u×%u",
|
|
||||||
- G_OBJECT_TYPE_NAME (icon), icon_width, icon_scale);
|
|
||||||
+ g_debug ("\tConsidering icon of type %s (%s), width %u×%u",
|
|
||||||
+ G_OBJECT_TYPE_NAME (icon), icon_str, icon_width, icon_scale);
|
|
||||||
|
|
||||||
/* Ignore icons with unknown width and skip over ones which
|
|
||||||
* are too small. */
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -1,48 +0,0 @@
|
|||||||
From 9a63168893a678f97fe6e3bfde2d6e5debf151c3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
Date: Tue, 16 Mar 2021 13:34:13 +0000
|
|
||||||
Subject: [PATCH 2/4] =?UTF-8?q?gs-appstream:=20Fix=20handling=20of=20icons?=
|
|
||||||
=?UTF-8?q?=20where=20appdata=20doesn=E2=80=99t=20specify=20width?=
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
If the `<icon>` element in the appdata doesn’t specify a `width`
|
|
||||||
attribute, `xb_node_get_attr_as_uint()` will return `G_MAXUINT64`.
|
|
||||||
However, its return value was being assigned to `sz`, which is a
|
|
||||||
`guint`, and hence it was being truncated. This resulted in icons having
|
|
||||||
their widths set to `G_MAXUINT`, and hence being prioritised for display
|
|
||||||
when that was not necessarily correct.
|
|
||||||
|
|
||||||
Fix that by explicitly handling the failure response from
|
|
||||||
`xb_node_get_attr_as_uint()`.
|
|
||||||
|
|
||||||
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
|
|
||||||
Fixes: #1171
|
|
||||||
---
|
|
||||||
plugins/core/gs-appstream.c | 8 ++++++--
|
|
||||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/plugins/core/gs-appstream.c b/plugins/core/gs-appstream.c
|
|
||||||
index a9cf97270..22fed1154 100644
|
|
||||||
--- a/plugins/core/gs-appstream.c
|
|
||||||
+++ b/plugins/core/gs-appstream.c
|
|
||||||
@@ -149,8 +149,12 @@ gs_appstream_new_icon (XbNode *component, XbNode *n, AsIconKind icon_kind, guint
|
|
||||||
default:
|
|
||||||
as_icon_set_name (icon, xb_node_get_text (n));
|
|
||||||
}
|
|
||||||
- if (sz == 0)
|
|
||||||
- sz = xb_node_get_attr_as_uint (n, "width");
|
|
||||||
+ if (sz == 0) {
|
|
||||||
+ guint64 width = xb_node_get_attr_as_uint (n, "width");
|
|
||||||
+ if (width > 0 && width < G_MAXUINT)
|
|
||||||
+ sz = width;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (sz > 0) {
|
|
||||||
as_icon_set_width (icon, sz);
|
|
||||||
as_icon_set_height (icon, sz);
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
From 3e86354cc5ccffc5ef27fa9e5ce2e99e3e60bc8c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
Date: Tue, 16 Mar 2021 13:36:23 +0000
|
|
||||||
Subject: [PATCH 3/4] gs-icon: Work around invalid icon names from some
|
|
||||||
appstream files
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Cached icons are supposed to provide a name (like `krita.png`), `width`
|
|
||||||
and `height` attributes, and then gnome-software can build the path to
|
|
||||||
the cached icon file according to
|
|
||||||
https://www.freedesktop.org/software/appstream/docs/sect-AppStream-IconCache.html#spec-iconcache-location.
|
|
||||||
|
|
||||||
Due to a bug in appstream-builder in appstream-glib
|
|
||||||
(https://github.com/hughsie/appstream-glib/pull/390), some appstream
|
|
||||||
files – for example, rpmfusion-free-33 – had invalid cached icon names,
|
|
||||||
which resulted in those icons not being loadable, and not appearing for
|
|
||||||
their applications.
|
|
||||||
|
|
||||||
As it may take a while for the fix in appstream-builder to be merged and
|
|
||||||
be used to regenerate all the appstream files for different app
|
|
||||||
repositories, add a workaround in gnome-software.
|
|
||||||
|
|
||||||
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
|
|
||||||
Helps: #1171
|
|
||||||
---
|
|
||||||
lib/gs-icon.c | 10 ++++++++++
|
|
||||||
1 file changed, 10 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/lib/gs-icon.c b/lib/gs-icon.c
|
|
||||||
index a88e62d34..955ab0217 100644
|
|
||||||
--- a/lib/gs-icon.c
|
|
||||||
+++ b/lib/gs-icon.c
|
|
||||||
@@ -200,12 +200,22 @@ gs_icon_load_cached (AsIcon *icon)
|
|
||||||
{
|
|
||||||
const gchar *filename = as_icon_get_filename (icon);
|
|
||||||
const gchar *name = as_icon_get_name (icon);
|
|
||||||
+ g_autofree gchar *name_allocated = NULL;
|
|
||||||
g_autofree gchar *full_filename = NULL;
|
|
||||||
g_autoptr(GFile) file = NULL;
|
|
||||||
|
|
||||||
if (filename == NULL || name == NULL)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
+ /* FIXME: Work around https://github.com/hughsie/appstream-glib/pull/390
|
|
||||||
+ * where appstream files generated with appstream-builder from
|
|
||||||
+ * appstream-glib, with its hidpi option enabled, will contain an
|
|
||||||
+ * unnecessary size subdirectory in the icon name. */
|
|
||||||
+ if (g_str_has_prefix (name, "64x64/"))
|
|
||||||
+ name = name_allocated = g_strdup (name + strlen ("64x64/"));
|
|
||||||
+ else if (g_str_has_prefix (name, "128x128/"))
|
|
||||||
+ name = name_allocated = g_strdup (name + strlen ("128x128/"));
|
|
||||||
+
|
|
||||||
if (!g_str_has_suffix (filename, name)) {
|
|
||||||
/* Spec: https://www.freedesktop.org/software/appstream/docs/sect-AppStream-IconCache.html#spec-iconcache-location */
|
|
||||||
if (as_icon_get_scale (icon) <= 1) {
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 80834ed7d336f103cfc7199fa96c6f2a860be438 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
Date: Thu, 18 Mar 2021 13:11:36 +0000
|
|
||||||
Subject: [PATCH 4/4] gs-shell-search-provider: Fix crash in variant handling
|
|
||||||
for icons
|
|
||||||
|
|
||||||
Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
|
|
||||||
|
|
||||||
Fixes: #1179
|
|
||||||
---
|
|
||||||
src/gs-shell-search-provider.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/gs-shell-search-provider.c b/src/gs-shell-search-provider.c
|
|
||||||
index 8bafc9a8c..27bbb45f7 100644
|
|
||||||
--- a/src/gs-shell-search-provider.c
|
|
||||||
+++ b/src/gs-shell-search-provider.c
|
|
||||||
@@ -254,7 +254,7 @@ handle_get_result_metas (GsShellSearchProvider2 *skeleton,
|
|
||||||
if (icon != NULL) {
|
|
||||||
g_autofree gchar *icon_str = g_icon_to_string (icon);
|
|
||||||
if (icon_str != NULL) {
|
|
||||||
- g_variant_builder_add (&meta, "{sv}", "gicon", icon_str);
|
|
||||||
+ g_variant_builder_add (&meta, "{sv}", "gicon", g_variant_new_string (icon_str));
|
|
||||||
} else {
|
|
||||||
g_autoptr(GVariant) icon_serialized = g_icon_serialize (icon);
|
|
||||||
g_variant_builder_add (&meta, "{sv}", "icon", icon_serialized);
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
@ -11,25 +11,14 @@
|
|||||||
%global tarball_version %%(echo %{version} | tr '~' '.')
|
%global tarball_version %%(echo %{version} | tr '~' '.')
|
||||||
|
|
||||||
Name: gnome-software
|
Name: gnome-software
|
||||||
Version: 40~rc
|
Version: 40.0
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: A software center for GNOME
|
Summary: A software center for GNOME
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
URL: https://wiki.gnome.org/Apps/Software
|
URL: https://wiki.gnome.org/Apps/Software
|
||||||
Source0: https://download.gnome.org/sources/gnome-software/40/%{name}-%{tarball_version}.tar.xz
|
Source0: https://download.gnome.org/sources/gnome-software/40/%{name}-%{tarball_version}.tar.xz
|
||||||
|
|
||||||
# Fix display of icons for packages and snaps
|
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1171
|
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/653
|
|
||||||
Patch0001: 0001-gs-app-Add-additional-icon-debug-information.patch
|
|
||||||
Patch0002: 0002-gs-appstream-Fix-handling-of-icons-where-appdata-doe.patch
|
|
||||||
Patch0003: 0003-gs-icon-Work-around-invalid-icon-names-from-some-app.patch
|
|
||||||
# Fix crash that sometimes breaks search provider or stops window appearing
|
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/1179
|
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-software/-/merge_requests/658
|
|
||||||
Patch0004: 0004-gs-shell-search-provider-Fix-crash-in-variant-handli.patch
|
|
||||||
|
|
||||||
BuildRequires: appstream-devel >= %{appstream_version}
|
BuildRequires: appstream-devel >= %{appstream_version}
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: gettext
|
BuildRequires: gettext
|
||||||
@ -211,6 +200,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
|
|||||||
%{_datadir}/gtk-doc/html/gnome-software
|
%{_datadir}/gtk-doc/html/gnome-software
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Mar 22 2021 Kalev Lember <klember@redhat.com> - 40.0-1
|
||||||
|
- Update to 40.0
|
||||||
|
|
||||||
* Thu Mar 18 2021 Adam Williamson <awilliam@redhat.com> - 40~rc-2
|
* Thu Mar 18 2021 Adam Williamson <awilliam@redhat.com> - 40~rc-2
|
||||||
- Backport a couple of bug fixes from upstream (icon display, crash bug)
|
- Backport a couple of bug fixes from upstream (icon display, crash bug)
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (gnome-software-40.rc.tar.xz) = caea26e84641f5db9dbacdec32e9f2039433e60fbb4548f48a33958eb1bd61415ab35e515100b29cb98a655bcf40ee8e2ea3cee4dd80d3777c2a81cf33848f8a
|
SHA512 (gnome-software-40.0.tar.xz) = 052c520ab25af4257bb978aaa9e1c7a555f8d24dbd782d9f12f3c3def22e65588d3c76d16e4b3dc26f034a762c2ee3e773026b158d468e9e169369dc3d156a2a
|
||||||
|
Loading…
Reference in New Issue
Block a user