Merge ~3v1n0/ubuntu/+source/gnome-software:ubuntu/bionic into ~ubuntu-desktop/ubuntu/+source/gnome-software:ubuntu/master
- Git
- lp:~3v1n0/ubuntu/+source/gnome-software
- ubuntu/bionic
- Merge into ubuntu/master
Status: | Superseded | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Proposed branch: | ~3v1n0/ubuntu/+source/gnome-software:ubuntu/bionic | ||||||||||||||||||||||||
Merge into: | ~ubuntu-desktop/ubuntu/+source/gnome-software:ubuntu/master | ||||||||||||||||||||||||
Diff against target: |
1805 lines (+1274/-5) (has conflicts) 19 files modified
debian/changelog (+65/-5) debian/control (+13/-0) debian/control.in (+8/-0) debian/gbp.conf (+7/-0) debian/patches/0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch (+27/-0) debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch (+11/-0) debian/patches/0001-snap-plugin-segfault.patch (+32/-0) debian/patches/0003-Sort-snaps-before-other-apps.patch (+14/-0) debian/patches/0006-packagekit-Disable-updates.patch (+31/-0) debian/patches/0011-Support-snap-channels.patch (+158/-0) debian/patches/0014-Add-a-basic-permissions-system.patch (+53/-0) debian/patches/0020-Show-verified-developers.patch (+217/-0) debian/patches/0021-snap-Use-wide-scope-when-searching.patch (+70/-0) debian/patches/0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch (+25/-0) debian/patches/0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch (+114/-0) debian/patches/0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch (+37/-0) debian/patches/0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch (+192/-0) debian/patches/0026-shell-search-provider-implement-XUbuntuCancel.patch (+176/-0) debian/patches/series (+24/-0) Conflict in debian/changelog Conflict in debian/control Conflict in debian/control.in Conflict in debian/gbp.conf Conflict in debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch Conflict in debian/patches/0003-Sort-snaps-before-other-apps.patch Conflict in debian/patches/0006-packagekit-Disable-updates.patch Conflict in debian/patches/0011-Support-snap-channels.patch Conflict in debian/patches/0014-Add-a-basic-permissions-system.patch Conflict in debian/patches/series |
||||||||||||||||||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Ubuntu Desktop | Pending | ||
Review via email: mp+358488@code.launchpad.net |
This proposal has been superseded by a proposal from 2018-11-08.
Commit message
Description of the change
Unmerged commits
- 8d4ed87... by Marco Trevisan (Treviño)
-
Finalise changelog
- dd9e986... by Robert Ancell
-
Implement XUbuntuCancel to request pending search cancellation from gnome-shell
Fixes LP: #1756826
- 098277f... by Robert Ancell
-
releasing package gnome-software version 3.28.1-
0ubuntu4. 18.04.5 - 7897bab... by Robert Ancell
-
* debian/
patches/ 0001-lib- Allow-opening- CAB-files- that-resolve- more-than- o.patch:
- Support composite CAB files (LP: #1798470) - ea77b8b... by Robert Ancell
-
* debian/
patches/ 0001-Set- reboot- notifications- as-urgent- to-avoid- them-tim. patch:
- Stop reboot notification from timing out (LP: #1719797) - 1c0a67e... by Robert Ancell
-
* debian/
patches/ 0003-Sort- snaps-before- other-apps. patch:
- Fix snap search result ordering (LP: #1798228) - 49fd993... by Robert Ancell
-
* debian/
patches/ 0023-Revert- Revert- flatpak- Use-list- of-related- apps-for- i.patch:
* debian/patches/ 0024-flatpak- Check-if- a-related- app-is- installed- even-whe. patch:
* debian/patches/ 0025-flatpak- Include- related- refs-to- the-app- s-runtime- on.patch:
- Pull related flatpak refs (LP: #1754864) - 09a666a... by Robert Ancell
-
3.28.1-
0ubuntu4. 18.04.4 was released - 1c69575... by Robert Ancell
-
* debian/control:
- Bump build-dependency on libsnapd-glib-dev - 98388e8... by Robert Ancell
-
* debian/
patches/ 0022-Delay- startup- of-GNOME- Software- to-allow- the-Shell- t.patch:
- Delay startup of service to allow the shell to load first (LP: #1756379)
Preview Diff
1 | diff --git a/debian/changelog b/debian/changelog |
2 | index 3a663a4..8dcdc3a 100644 |
3 | --- a/debian/changelog |
4 | +++ b/debian/changelog |
5 | @@ -1,3 +1,4 @@ |
6 | +<<<<<<< debian/changelog |
7 | gnome-software (3.30.2-0ubuntu8) cosmic; urgency=medium |
8 | |
9 | * debian/patches/0001-Revert-ef15f51d.patch: |
10 | @@ -147,20 +148,79 @@ gnome-software (3.29.1-0ubuntu1) cosmic; urgency=medium |
11 | -- Robert Ancell <robert.ancell@canonical.com> Wed, 23 May 2018 11:55:28 +1200 |
12 | |
13 | gnome-software (3.28.1-0ubuntu6) cosmic; urgency=medium |
14 | +======= |
15 | +gnome-software (3.28.1-0ubuntu4.18.04.6) bionic; urgency=medium |
16 | +>>>>>>> debian/changelog |
17 | |
18 | + * debian/patches/0026-shell-search-provider-implement-XUbuntuCancel.patch |
19 | + - implement XUbuntuCancel to request pending search cancellation from |
20 | + gnome-shell (LP: #1756826) |
21 | + |
22 | + -- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 08 Nov 2018 03:32:00 -0600 |
23 | + |
24 | +gnome-software (3.28.1-0ubuntu4.18.04.5) bionic; urgency=medium |
25 | + |
26 | + * debian/patches/0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch: |
27 | + * debian/patches/0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch: |
28 | + * debian/patches/0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch: |
29 | + - Pull related flatpak refs (LP: #1754864) |
30 | + * debian/patches/0003-Sort-snaps-before-other-apps.patch: |
31 | + - Fix snap search result ordering (LP: #1798228) |
32 | + * debian/patches/0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch: |
33 | + - Stop reboot notification from timing out (LP: #1719797) |
34 | + * debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch: |
35 | + - Support composite CAB files (LP: #1798470) |
36 | + |
37 | + -- Robert Ancell <robert.ancell@canonical.com> Mon, 29 Oct 2018 16:06:34 +1300 |
38 | + |
39 | +gnome-software (3.28.1-0ubuntu4.18.04.4) bionic; urgency=medium |
40 | + |
41 | + * debian/control: |
42 | + - Bump build-dependency on libsnapd-glib-dev |
43 | + * debian/patches/0020-Show-verified-developers.patch: |
44 | + - Show verified developers (LP: #1789336) |
45 | * debian/patches/0011-Support-snap-channels.patch: |
46 | - - Make snap channel selection list scrollable (LP: #1768779) |
47 | - - Fix channel branches all showing the same name (LP: #1768794) |
48 | - - Alphabetically sort channel branch names (LP: #1769556) |
49 | + * debian/patches/0021-snap-Use-wide-scope-when-searching.patch: |
50 | + - Use wide scope searching (LP: #1789338) |
51 | + * debian/patches/0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch: |
52 | + - Delay startup of service to allow the shell to load first (LP: #1756379) |
53 | |
54 | + -- Robert Ancell <robert.ancell@canonical.com> Wed, 19 Sep 2018 16:27:38 +0200 |
55 | + |
56 | +gnome-software (3.28.1-0ubuntu4.18.04.3) bionic; urgency=medium |
57 | + |
58 | +<<<<<<< debian/changelog |
59 | -- Robert Ancell <robert.ancell@canonical.com> Mon, 07 May 2018 16:31:46 +1200 |
60 | +======= |
61 | + * debian/patches/0006-packagekit-Disable-updates.patch: |
62 | + - also disable offline updates in refresh plugin (LP: #1775226) |
63 | +>>>>>>> debian/changelog |
64 | + |
65 | + -- Olivier Tilloy <olivier.tilloy@canonical.com> Thu, 02 Aug 2018 12:25:36 +0200 |
66 | |
67 | -gnome-software (3.28.1-0ubuntu5) cosmic; urgency=medium |
68 | +gnome-software (3.28.1-0ubuntu4.18.04.2) bionic; urgency=medium |
69 | + |
70 | + [ Robert Ancell ] |
71 | + * debian/patches/0014-Add-a-basic-permissions-system.patch: |
72 | + - Fix crash when have plugs with multiple slots available (LP: #1778160) |
73 | + |
74 | + [ Andrea Azzarone ] |
75 | + * debian/patches/0001-snap-plugin-segfault.patch: |
76 | + - don't segfault on null snap installation date (lp: #1781996) |
77 | + |
78 | + -- Sebastien Bacher <seb128@ubuntu.com> Thu, 19 Jul 2018 17:10:17 +0200 |
79 | + |
80 | +gnome-software (3.28.1-0ubuntu4.18.04.1) bionic; urgency=medium |
81 | |
82 | * debian/patches/0011-Support-snap-channels.patch: |
83 | - Fix incorrect default install version being shown (LP: #1767445) |
84 | + - Make snap channel selection list scrollable (LP: #1768779) |
85 | + - Fix channel branches all showing the same name (LP: #1768794) |
86 | + - Alphabetically sort channel branch names (LP: #1769556) |
87 | + * debian/control: |
88 | + - Use bionic Vcs link |
89 | |
90 | - -- Robert Ancell <robert.ancell@canonical.com> Thu, 03 May 2018 12:33:30 +1200 |
91 | + -- Robert Ancell <robert.ancell@canonical.com> Mon, 07 May 2018 16:32:37 +1200 |
92 | |
93 | gnome-software (3.28.1-0ubuntu4) bionic; urgency=medium |
94 | |
95 | diff --git a/debian/control b/debian/control |
96 | index 02b40b2..56cce3f 100644 |
97 | --- a/debian/control |
98 | +++ b/debian/control |
99 | @@ -29,7 +29,11 @@ Build-Depends: appstream, |
100 | libpackagekit-glib2-dev (>= 1.1.4), |
101 | libpolkit-gobject-1-dev, |
102 | libsecret-1-dev, |
103 | +<<<<<<< debian/control |
104 | libsnapd-glib-dev (>= 1.43) [amd64 arm64 armel armhf i386 ppc64 ppc64el s390x], |
105 | +======= |
106 | + libsnapd-glib-dev (>= 1.42) [amd64 arm64 armel armhf i386 ppc64 ppc64el s390x], |
107 | +>>>>>>> debian/control |
108 | libsoup2.4-dev (>= 2.52), |
109 | libsqlite3-dev, |
110 | libxml2-utils, |
111 | @@ -42,7 +46,11 @@ Homepage: https://wiki.gnome.org/Apps/Software |
112 | XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-software |
113 | XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-software.git |
114 | Vcs-Browser: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software |
115 | +<<<<<<< debian/control |
116 | Vcs-Git: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software |
117 | +======= |
118 | +Vcs-Git: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software -b ubuntu/bionic |
119 | +>>>>>>> debian/control |
120 | |
121 | Package: gnome-software |
122 | Architecture: any |
123 | @@ -60,7 +68,12 @@ Conflicts: sessioninstaller |
124 | Recommends: gnome-software-plugin-snap [linux-any], |
125 | Suggests: apt-config-icons-hidpi, |
126 | fwupd [amd64 arm64 armhf i386], |
127 | +<<<<<<< debian/control |
128 | gnome-software-plugin-flatpak [linux-any] |
129 | +======= |
130 | + gnome-software-plugin-flatpak [linux-any], |
131 | + gnome-software-plugin-limba [linux-any] |
132 | +>>>>>>> debian/control |
133 | Description: Software Center for GNOME |
134 | Software lets you install and update applications and system extensions. |
135 | . |
136 | diff --git a/debian/control.in b/debian/control.in |
137 | index e0e8726..6b1c6df 100644 |
138 | --- a/debian/control.in |
139 | +++ b/debian/control.in |
140 | @@ -25,7 +25,11 @@ Build-Depends: appstream, |
141 | libpackagekit-glib2-dev (>= 1.1.4), |
142 | libpolkit-gobject-1-dev, |
143 | libsecret-1-dev, |
144 | +<<<<<<< debian/control.in |
145 | libsnapd-glib-dev (>= 1.43) [amd64 arm64 armel armhf i386 ppc64 ppc64el s390x], |
146 | +======= |
147 | + libsnapd-glib-dev (>= 1.42) [amd64 arm64 armel armhf i386 ppc64 ppc64el s390x], |
148 | +>>>>>>> debian/control.in |
149 | libsoup2.4-dev (>= 2.52), |
150 | libsqlite3-dev, |
151 | libxml2-utils, |
152 | @@ -38,7 +42,11 @@ Homepage: https://wiki.gnome.org/Apps/Software |
153 | XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-software |
154 | XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-software.git |
155 | Vcs-Browser: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software |
156 | +<<<<<<< debian/control.in |
157 | Vcs-Git: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software |
158 | +======= |
159 | +Vcs-Git: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-software -b ubuntu/bionic |
160 | +>>>>>>> debian/control.in |
161 | |
162 | Package: gnome-software |
163 | Architecture: any |
164 | diff --git a/debian/gbp.conf b/debian/gbp.conf |
165 | index 34a17e9..16658ad 100644 |
166 | --- a/debian/gbp.conf |
167 | +++ b/debian/gbp.conf |
168 | @@ -1,5 +1,6 @@ |
169 | [DEFAULT] |
170 | debian-branch=ubuntu/master |
171 | +<<<<<<< debian/gbp.conf |
172 | upstream-branch=upstream/latest |
173 | debian-tag=ubuntu/%(version)s |
174 | upstream-vcs-tag=%(version)s |
175 | @@ -17,3 +18,9 @@ postimport = dch -v%(version)s New upstream release; git add debian/changelog; d |
176 | [pq] |
177 | patch-numbers = False |
178 | |
179 | +======= |
180 | +upstream-branch=upstream/3.28.x |
181 | +debian-tag=ubuntu/%(version)s |
182 | +upstream-vcs-tag=%(version)s |
183 | +pristine-tar=True |
184 | +>>>>>>> debian/gbp.conf |
185 | diff --git a/debian/patches/0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch b/debian/patches/0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch |
186 | new file mode 100644 |
187 | index 0000000..3d37c58 |
188 | --- /dev/null |
189 | +++ b/debian/patches/0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch |
190 | @@ -0,0 +1,27 @@ |
191 | +From 057eea7cc03d647544b5819ff37951f7bfffb77e Mon Sep 17 00:00:00 2001 |
192 | +From: Mario Limonciello <mario.limonciello@dell.com> |
193 | +Date: Thu, 13 Sep 2018 12:28:58 -0500 |
194 | +Subject: [PATCH] Set reboot notifications as urgent to avoid them timing out |
195 | + (Fixes: #341) |
196 | + |
197 | +It was confirmed in https://bugzilla.gnome.org/show_bug.cgi?id=783719 |
198 | +that this field will influence the timeout |
199 | +--- |
200 | + src/gs-updates-page.c | 1 + |
201 | + 1 file changed, 1 insertion(+) |
202 | + |
203 | +diff --git a/src/gs-updates-page.c b/src/gs-updates-page.c |
204 | +index fa77dbd9..cd9db05d 100644 |
205 | +--- a/src/gs-updates-page.c |
206 | ++++ b/src/gs-updates-page.c |
207 | +@@ -751,6 +751,7 @@ _perform_update_cb (GsPluginLoader *plugin_loader, GAsyncResult *res, gpointer u |
208 | + /* TRANSLATORS: button text */ |
209 | + g_notification_add_button_with_target (n, _("Restart"), "app.reboot", NULL); |
210 | + g_notification_set_default_action_and_target (n, "app.set-mode", "s", "updates"); |
211 | ++ g_notification_set_priority (n, G_NOTIFICATION_PRIORITY_URGENT); |
212 | + g_application_send_notification (g_application_get_default (), "restart-required", n); |
213 | + } |
214 | + } |
215 | +-- |
216 | +2.19.1 |
217 | + |
218 | diff --git a/debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch b/debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
219 | index 931e0db..f6bb205 100644 |
220 | --- a/debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
221 | +++ b/debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
222 | @@ -1,4 +1,8 @@ |
223 | +<<<<<<< debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
224 | From 8e8887f890489959daa3400f531e7febf9e9f8b6 Mon Sep 17 00:00:00 2001 |
225 | +======= |
226 | +From 3c5e8905fb72437f7ce62fcc7fcd2fa0988e31d0 Mon Sep 17 00:00:00 2001 |
227 | +>>>>>>> debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
228 | From: Mario Limonciello <mario.limonciello@dell.com> |
229 | Date: Tue, 16 Oct 2018 11:21:47 -0500 |
230 | Subject: [PATCH] lib: Allow opening CAB files that resolve more than one GsApp |
231 | @@ -16,10 +20,17 @@ This was verified using a Dell USB-C dock and fwupd 1.1.3. |
232 | 1 file changed, 1 insertion(+), 6 deletions(-) |
233 | |
234 | diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c |
235 | +<<<<<<< debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
236 | index 55afa8bb..630d0c6c 100644 |
237 | --- a/lib/gs-plugin-loader.c |
238 | +++ b/lib/gs-plugin-loader.c |
239 | @@ -3385,12 +3385,7 @@ gs_plugin_loader_process_thread_cb (GTask *task, |
240 | +======= |
241 | +index 2fb02e3c..f52d1d27 100644 |
242 | +--- a/lib/gs-plugin-loader.c |
243 | ++++ b/lib/gs-plugin-loader.c |
244 | +@@ -3449,12 +3449,7 @@ gs_plugin_loader_process_thread_cb (GTask *task, |
245 | +>>>>>>> debian/patches/0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
246 | } |
247 | if (gs_app_list_length (list) > 1) { |
248 | g_autofree gchar *str = gs_plugin_job_to_string (helper->plugin_job); |
249 | diff --git a/debian/patches/0001-snap-plugin-segfault.patch b/debian/patches/0001-snap-plugin-segfault.patch |
250 | new file mode 100644 |
251 | index 0000000..6d1bbfd |
252 | --- /dev/null |
253 | +++ b/debian/patches/0001-snap-plugin-segfault.patch |
254 | @@ -0,0 +1,32 @@ |
255 | +From e766ac5bd36295a851bf08296734f7df45208dd9 Mon Sep 17 00:00:00 2001 |
256 | +From: Andrea Azzarone <azzaronea@gmail.com> |
257 | +Date: Mon, 16 Jul 2018 21:44:45 +0200 |
258 | +Subject: [PATCH] snap: Don't pass NULL to g_date_time_to_unix |
259 | + |
260 | +As per API documentation, snapd_snap_get_install_date can return NULL. Passing |
261 | +NULL to g_date_time_to_unix results in a crash. When this happens we should pass |
262 | +GS_APP_INSTALL_DATE_UNKNOWN to gs_app_set_install_date. |
263 | + |
264 | +Fixes: https://bugs.launchpad.net/bugs/1781996 |
265 | +--- |
266 | + plugins/snap/gs-plugin-snap.c | 4 +++- |
267 | + 1 file changed, 3 insertions(+), 1 deletion(-) |
268 | + |
269 | +diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
270 | +index 14571efe..6323f6ca 100644 |
271 | +--- a/plugins/snap/gs-plugin-snap.c |
272 | ++++ b/plugins/snap/gs-plugin-snap.c |
273 | +@@ -823,9 +823,11 @@ gs_plugin_refine_app (GsPlugin *plugin, |
274 | + /* add information specific to installed snaps */ |
275 | + if (local_snap != NULL) { |
276 | + SnapdApp *snap_app; |
277 | ++ GDateTime *install_date; |
278 | + |
279 | ++ install_date = snapd_snap_get_install_date (local_snap); |
280 | + gs_app_set_size_installed (app, snapd_snap_get_installed_size (local_snap)); |
281 | +- gs_app_set_install_date (app, g_date_time_to_unix (snapd_snap_get_install_date (local_snap))); |
282 | ++ gs_app_set_install_date (app, install_date != NULL ? g_date_time_to_unix (install_date) : GS_APP_INSTALL_DATE_UNKNOWN); |
283 | + |
284 | + snap_app = get_primary_app (local_snap); |
285 | + if (snap_app != NULL) { |
286 | + |
287 | diff --git a/debian/patches/0003-Sort-snaps-before-other-apps.patch b/debian/patches/0003-Sort-snaps-before-other-apps.patch |
288 | index 85e799e..31693e9 100644 |
289 | --- a/debian/patches/0003-Sort-snaps-before-other-apps.patch |
290 | +++ b/debian/patches/0003-Sort-snaps-before-other-apps.patch |
291 | @@ -1,7 +1,14 @@ |
292 | +<<<<<<< debian/patches/0003-Sort-snaps-before-other-apps.patch |
293 | From 93554bae8d7de73ad56532abc0b4d28a8bc8290b Mon Sep 17 00:00:00 2001 |
294 | From: Robert Ancell <robert.ancell@canonical.com> |
295 | Date: Wed, 30 Mar 2016 15:55:47 +1300 |
296 | Subject: [PATCH 03/26] Sort snaps before other apps |
297 | +======= |
298 | +From d11180688c730f3f27edbb6f374858b33144ee42 Mon Sep 17 00:00:00 2001 |
299 | +From: Robert Ancell <robert.ancell@canonical.com> |
300 | +Date: Wed, 30 Mar 2016 15:55:47 +1300 |
301 | +Subject: [PATCH 03/28] Sort snaps before other apps |
302 | +>>>>>>> debian/patches/0003-Sort-snaps-before-other-apps.patch |
303 | |
304 | --- |
305 | plugins/snap/gs-plugin-snap.c | 1 + |
306 | @@ -9,10 +16,17 @@ Subject: [PATCH 03/26] Sort snaps before other apps |
307 | 2 files changed, 7 insertions(+) |
308 | |
309 | diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
310 | +<<<<<<< debian/patches/0003-Sort-snaps-before-other-apps.patch |
311 | index d34948fe..f9c6a347 100644 |
312 | --- a/plugins/snap/gs-plugin-snap.c |
313 | +++ b/plugins/snap/gs-plugin-snap.c |
314 | @@ -585,6 +585,7 @@ gs_plugin_add_search (GsPlugin *plugin, |
315 | +======= |
316 | +index 510a02a7..45f65bda 100644 |
317 | +--- a/plugins/snap/gs-plugin-snap.c |
318 | ++++ b/plugins/snap/gs-plugin-snap.c |
319 | +@@ -590,6 +590,7 @@ gs_plugin_add_search (GsPlugin *plugin, |
320 | +>>>>>>> debian/patches/0003-Sort-snaps-before-other-apps.patch |
321 | |
322 | for (i = 0; i < snaps->len; i++) { |
323 | g_autoptr(GsApp) app = snap_to_app (plugin, g_ptr_array_index (snaps, i)); |
324 | diff --git a/debian/patches/0006-packagekit-Disable-updates.patch b/debian/patches/0006-packagekit-Disable-updates.patch |
325 | index 7c3ea9f..5bd0a63 100644 |
326 | --- a/debian/patches/0006-packagekit-Disable-updates.patch |
327 | +++ b/debian/patches/0006-packagekit-Disable-updates.patch |
328 | @@ -1,15 +1,26 @@ |
329 | +<<<<<<< debian/patches/0006-packagekit-Disable-updates.patch |
330 | From 5117239ec132fc976ae9cc74e8f40a310221e602 Mon Sep 17 00:00:00 2001 |
331 | From: Olivier Tilloy <olivier.tilloy@canonical.com> |
332 | Date: Tue, 7 Aug 2018 19:03:23 +0200 |
333 | Subject: [PATCH 06/26] packagekit: Disable updates |
334 | |
335 | In Ubuntu we use Update Manager for this currently. The long term plan is to use Software, but we're not there yet. |
336 | +======= |
337 | +Description: [PATCH 06/20] packagekit: Disable updates |
338 | + In Ubuntu we use Update Manager for this currently. The long term plan |
339 | + is to use Software, but we're not there yet. |
340 | +Author: Iain Lane <iain@orangesquash.org.uk> |
341 | +Author: Olivier Tilloy <olivier.tilloy@canonical.com> |
342 | +Date: Thu, 20 Jul 2017 10:12:58 +0100 |
343 | +Last-Update: 2018-08-01 |
344 | +>>>>>>> debian/patches/0006-packagekit-Disable-updates.patch |
345 | --- |
346 | plugins/packagekit/gs-plugin-packagekit-refresh.c | 3 +++ |
347 | plugins/packagekit/gs-plugin-packagekit.c | 3 +++ |
348 | plugins/packagekit/gs-plugin-systemd-updates.c | 3 +++ |
349 | 3 files changed, 9 insertions(+) |
350 | |
351 | +<<<<<<< debian/patches/0006-packagekit-Disable-updates.patch |
352 | diff --git a/plugins/packagekit/gs-plugin-packagekit-refresh.c b/plugins/packagekit/gs-plugin-packagekit-refresh.c |
353 | index 2b8ce27c..a6002d5d 100644 |
354 | --- a/plugins/packagekit/gs-plugin-packagekit-refresh.c |
355 | @@ -40,6 +51,8 @@ index 8d7eb551..db3cc49d 100644 |
356 | results = pk_client_get_updates (PK_CLIENT (priv->task), |
357 | diff --git a/plugins/packagekit/gs-plugin-systemd-updates.c b/plugins/packagekit/gs-plugin-systemd-updates.c |
358 | index 449a9726..320af255 100644 |
359 | +======= |
360 | +>>>>>>> debian/patches/0006-packagekit-Disable-updates.patch |
361 | --- a/plugins/packagekit/gs-plugin-systemd-updates.c |
362 | +++ b/plugins/packagekit/gs-plugin-systemd-updates.c |
363 | @@ -253,6 +253,9 @@ gs_plugin_update (GsPlugin *plugin, |
364 | @@ -49,9 +62,27 @@ index 449a9726..320af255 100644 |
365 | + /* In Ubuntu we're using Update Manager for this, for now. */ |
366 | + return TRUE; |
367 | + |
368 | +<<<<<<< debian/patches/0006-packagekit-Disable-updates.patch |
369 | /* any are us? */ |
370 | for (guint i = 0; i < gs_app_list_length (list); i++) { |
371 | GsApp *app = gs_app_list_index (list, i); |
372 | -- |
373 | 2.17.1 |
374 | |
375 | +======= |
376 | + /* get the id's if the file exists */ |
377 | + package_ids = pk_offline_get_prepared_ids (&error_local); |
378 | + if (package_ids == NULL) { |
379 | +--- a/plugins/packagekit/gs-plugin-packagekit-refresh.c |
380 | ++++ b/plugins/packagekit/gs-plugin-packagekit-refresh.c |
381 | +@@ -97,6 +97,9 @@ gs_plugin_refresh (GsPlugin *plugin, |
382 | + } |
383 | + } |
384 | + |
385 | ++ /* In Ubuntu we're using Update Manager for this, for now (LP: #1775226) */ |
386 | ++ return TRUE; |
387 | ++ |
388 | + /* download all the packages themselves */ |
389 | + if (flags & GS_PLUGIN_REFRESH_FLAGS_PAYLOAD) { |
390 | + g_auto(GStrv) package_ids = NULL; |
391 | +>>>>>>> debian/patches/0006-packagekit-Disable-updates.patch |
392 | diff --git a/debian/patches/0011-Support-snap-channels.patch b/debian/patches/0011-Support-snap-channels.patch |
393 | index c02b5ec..949ab97 100644 |
394 | --- a/debian/patches/0011-Support-snap-channels.patch |
395 | +++ b/debian/patches/0011-Support-snap-channels.patch |
396 | @@ -1,12 +1,22 @@ |
397 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
398 | From ab6caf6eab44077952e18a88021bcba0b4867991 Mon Sep 17 00:00:00 2001 |
399 | +======= |
400 | +From c2a9016780d84fcf7978c25c84a244bf169b4a99 Mon Sep 17 00:00:00 2001 |
401 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
402 | From: Robert Ancell <robert.ancell@canonical.com> |
403 | Date: Thu, 23 Nov 2017 10:54:20 +1300 |
404 | Subject: [PATCH 11/24] Support snap channels |
405 | |
406 | --- |
407 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
408 | lib/gs-app.c | 91 ++++++++++++ |
409 | lib/gs-app.h | 7 + |
410 | lib/gs-channel.c | 116 +++++++++++++++ |
411 | +======= |
412 | + lib/gs-app.c | 108 +++++++++++++ |
413 | + lib/gs-app.h | 9 ++ |
414 | + lib/gs-channel.c | 116 ++++++++++++++ |
415 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
416 | lib/gs-channel.h | 44 ++++++ |
417 | lib/gs-plugin-job-private.h | 1 + |
418 | lib/gs-plugin-job.c | 31 ++++ |
419 | @@ -20,16 +30,28 @@ Subject: [PATCH 11/24] Support snap channels |
420 | lib/gs-utils.h | 2 + |
421 | lib/meson.build | 2 + |
422 | plugins/dummy/gs-plugin-dummy.c | 11 ++ |
423 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
424 | plugins/snap/gs-plugin-snap.c | 254 +++++++++++++++++++++++++++++--- |
425 | src/gs-details-page.c | 199 ++++++++++++++++++++++++- |
426 | src/gs-details-page.ui | 104 ++++++++++--- |
427 | src/gtk-style.css | 31 ++++ |
428 | 20 files changed, 944 insertions(+), 43 deletions(-) |
429 | +======= |
430 | + plugins/snap/gs-plugin-snap.c | 264 +++++++++++++++++++++++++++++--- |
431 | + src/gs-details-page.c | 200 +++++++++++++++++++++++- |
432 | + src/gs-details-page.ui | 104 ++++++++++--- |
433 | + src/gtk-style.css | 31 ++++ |
434 | + 21 files changed, 968 insertions(+), 51 deletions(-) |
435 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
436 | create mode 100644 lib/gs-channel.c |
437 | create mode 100644 lib/gs-channel.h |
438 | |
439 | diff --git a/lib/gs-app.c b/lib/gs-app.c |
440 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
441 | index 805c6894..41fe8039 100644 |
442 | +======= |
443 | +index 3dde87c8..3967578e 100644 |
444 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
445 | --- a/lib/gs-app.c |
446 | +++ b/lib/gs-app.c |
447 | @@ -126,6 +126,8 @@ typedef struct |
448 | @@ -60,7 +82,35 @@ index 805c6894..41fe8039 100644 |
449 | keys = g_hash_table_get_keys (priv->metadata); |
450 | for (GList *l = keys; l != NULL; l = l->next) { |
451 | GVariant *val; |
452 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
453 | @@ -3985,6 +3999,80 @@ gs_app_get_priority (GsApp *app) |
454 | +======= |
455 | +@@ -3765,6 +3779,23 @@ gs_app_add_kudo (GsApp *app, GsAppKudo kudo) |
456 | + priv->kudos |= kudo; |
457 | + } |
458 | + |
459 | ++/** |
460 | ++ * gs_app_remove_kudo: |
461 | ++ * @app: a #GsApp |
462 | ++ * @kudo: a #GsAppKudo, e.g. %GS_APP_KUDO_MY_LANGUAGE |
463 | ++ * |
464 | ++ * Removes a kudo from an application. |
465 | ++ * |
466 | ++ * Since: 3.28 |
467 | ++ **/ |
468 | ++void |
469 | ++gs_app_remove_kudo (GsApp *app, GsAppKudo kudo) |
470 | ++{ |
471 | ++ GsAppPrivate *priv = gs_app_get_instance_private (app); |
472 | ++ g_return_if_fail (GS_IS_APP (app)); |
473 | ++ priv->kudos &= ~kudo; |
474 | ++} |
475 | ++ |
476 | + /** |
477 | + * gs_app_has_kudo: |
478 | + * @app: a #GsApp |
479 | +@@ -4040,6 +4071,80 @@ gs_app_get_priority (GsApp *app) |
480 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
481 | return priv->priority; |
482 | } |
483 | |
484 | @@ -141,7 +191,11 @@ index 805c6894..41fe8039 100644 |
485 | /** |
486 | * gs_app_get_cancellable: |
487 | * @app: a #GsApp |
488 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
489 | @@ -4166,6 +4254,8 @@ gs_app_dispose (GObject *object) |
490 | +======= |
491 | +@@ -4222,6 +4327,8 @@ gs_app_dispose (GObject *object) |
492 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
493 | g_clear_pointer (&priv->reviews, g_ptr_array_unref); |
494 | g_clear_pointer (&priv->provides, g_ptr_array_unref); |
495 | g_clear_pointer (&priv->icons, g_ptr_array_unref); |
496 | @@ -150,7 +204,11 @@ index 805c6894..41fe8039 100644 |
497 | |
498 | G_OBJECT_CLASS (gs_app_parent_class)->dispose (object); |
499 | } |
500 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
501 | @@ -4353,6 +4443,7 @@ gs_app_init (GsApp *app) |
502 | +======= |
503 | +@@ -4411,6 +4518,7 @@ gs_app_init (GsApp *app) |
504 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
505 | priv->reviews = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
506 | priv->provides = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
507 | priv->icons = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
508 | @@ -472,7 +530,11 @@ index fdca6868..cfd9af78 100644 |
509 | #define gs_plugin_job_newv(a,...) GS_PLUGIN_JOB(g_object_new(GS_TYPE_PLUGIN_JOB, "action", a, __VA_ARGS__)) |
510 | |
511 | diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c |
512 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
513 | index ca327cdb..f3a83016 100644 |
514 | +======= |
515 | +index 2fb02e3c..989f3264 100644 |
516 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
517 | --- a/lib/gs-plugin-loader.c |
518 | +++ b/lib/gs-plugin-loader.c |
519 | @@ -135,6 +135,11 @@ typedef gboolean (*GsPluginPurchaseFunc) (GsPlugin *plugin, |
520 | @@ -487,7 +549,11 @@ index ca327cdb..f3a83016 100644 |
521 | typedef gboolean (*GsPluginReviewFunc) (GsPlugin *plugin, |
522 | GsApp *app, |
523 | AsReview *review, |
524 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
525 | @@ -618,6 +623,14 @@ gs_plugin_loader_call_vfunc (GsPluginLoaderHelper *helper, |
526 | +======= |
527 | +@@ -667,6 +672,14 @@ gs_plugin_loader_call_vfunc (GsPluginLoaderHelper *helper, |
528 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
529 | cancellable, &error_local); |
530 | } |
531 | break; |
532 | @@ -633,10 +699,17 @@ index 868d5a50..4a749182 100644 |
533 | |
534 | static void |
535 | diff --git a/lib/gs-utils.c b/lib/gs-utils.c |
536 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
537 | index 23d24995..0db55d84 100644 |
538 | --- a/lib/gs-utils.c |
539 | +++ b/lib/gs-utils.c |
540 | @@ -982,6 +982,41 @@ gs_utils_get_url_path (const gchar *url) |
541 | +======= |
542 | +index f59b8c9c..d648e240 100644 |
543 | +--- a/lib/gs-utils.c |
544 | ++++ b/lib/gs-utils.c |
545 | +@@ -983,6 +983,41 @@ gs_utils_get_url_path (const gchar *url) |
546 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
547 | return g_strdup (path); |
548 | } |
549 | |
550 | @@ -709,8 +782,26 @@ index 7b11e72c..ae5ad87b 100644 |
551 | 'gs-category.c', |
552 | + 'gs-channel.c', |
553 | 'gs-debug.c', |
554 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
555 | 'gs-ioprio.c', |
556 | 'gs-ioprio.h', |
557 | +======= |
558 | + 'gs-os-release.c', |
559 | + 'gs-plugin.c', |
560 | +diff --git a/meson.build b/meson.build |
561 | +index 9ded0971..3b2f726e 100644 |
562 | +--- a/meson.build |
563 | ++++ b/meson.build |
564 | +@@ -166,7 +166,7 @@ if get_option('enable-gudev') |
565 | + endif |
566 | + |
567 | + if get_option('enable-snap') |
568 | +- snap = dependency('snapd-glib', version : '>= 1.19') |
569 | ++ snap = dependency('snapd-glib', version : '>= 1.31') |
570 | + endif |
571 | + |
572 | + gnome = import('gnome') |
573 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
574 | diff --git a/plugins/dummy/gs-plugin-dummy.c b/plugins/dummy/gs-plugin-dummy.c |
575 | index 6f739ff7..02301bec 100644 |
576 | --- a/plugins/dummy/gs-plugin-dummy.c |
577 | @@ -734,7 +825,11 @@ index 6f739ff7..02301bec 100644 |
578 | gs_plugin_app_upgrade_download (GsPlugin *plugin, GsApp *app, |
579 | GCancellable *cancellable, GError **error) |
580 | diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
581 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
582 | index 693f9c8a..064443d1 100644 |
583 | +======= |
584 | +index d7957712..b5add5c1 100644 |
585 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
586 | --- a/plugins/snap/gs-plugin-snap.c |
587 | +++ b/plugins/snap/gs-plugin-snap.c |
588 | @@ -36,6 +36,27 @@ struct GsPluginData { |
589 | @@ -875,7 +970,11 @@ index 693f9c8a..064443d1 100644 |
590 | if (store_snap != NULL) |
591 | return load_store_icon (app, store_snap); |
592 | |
593 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
594 | @@ -782,6 +812,102 @@ gs_plugin_snap_get_description_safe (SnapdSnap *snap) |
595 | +======= |
596 | +@@ -787,6 +819,102 @@ gs_plugin_snap_get_description_safe (SnapdSnap *snap) |
597 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
598 | return g_string_free (str, FALSE); |
599 | } |
600 | |
601 | @@ -978,7 +1077,11 @@ index 693f9c8a..064443d1 100644 |
602 | gboolean |
603 | gs_plugin_refine_app (GsPlugin *plugin, |
604 | GsApp *app, |
605 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
606 | @@ -791,7 +917,7 @@ gs_plugin_refine_app (GsPlugin *plugin, |
607 | +======= |
608 | +@@ -796,7 +924,7 @@ gs_plugin_refine_app (GsPlugin *plugin, |
609 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
610 | { |
611 | GsPluginData *priv = gs_plugin_get_data (plugin); |
612 | g_autoptr(SnapdClient) client = NULL; |
613 | @@ -987,7 +1090,11 @@ index 693f9c8a..064443d1 100644 |
614 | g_autoptr(SnapdSnap) local_snap = NULL; |
615 | g_autoptr(SnapdSnap) store_snap = NULL; |
616 | SnapdSnap *snap; |
617 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
618 | @@ -808,13 +934,52 @@ gs_plugin_refine_app (GsPlugin *plugin, |
619 | +======= |
620 | +@@ -818,13 +946,52 @@ gs_plugin_refine_app (GsPlugin *plugin, |
621 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
622 | |
623 | /* get information from local snaps and store */ |
624 | local_snap = snapd_client_get_snap_sync (client, gs_app_get_metadata_item (app, "snap::name"), cancellable, NULL); |
625 | @@ -1043,7 +1150,11 @@ index 693f9c8a..064443d1 100644 |
626 | else |
627 | gs_app_set_state (app, AS_APP_STATE_AVAILABLE); |
628 | |
629 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
630 | @@ -926,6 +1091,7 @@ gs_plugin_app_install (GsPlugin *plugin, |
631 | +======= |
632 | +@@ -929,6 +1096,7 @@ gs_plugin_app_install (GsPlugin *plugin, |
633 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
634 | { |
635 | g_autoptr(SnapdClient) client = NULL; |
636 | SnapdInstallFlags flags = SNAPD_INSTALL_FLAGS_NONE; |
637 | @@ -1051,7 +1162,11 @@ index 693f9c8a..064443d1 100644 |
638 | |
639 | /* We can only install apps we know of */ |
640 | if (g_strcmp0 (gs_app_get_management_plugin (app), "snap") != 0) |
641 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
642 | @@ -935,10 +1101,39 @@ gs_plugin_app_install (GsPlugin *plugin, |
643 | +======= |
644 | +@@ -938,10 +1106,39 @@ gs_plugin_app_install (GsPlugin *plugin, |
645 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
646 | if (client == NULL) |
647 | return FALSE; |
648 | |
649 | @@ -1092,7 +1207,11 @@ index 693f9c8a..064443d1 100644 |
650 | gs_app_set_state_recover (app); |
651 | snapd_error_convert (error); |
652 | return FALSE; |
653 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
654 | @@ -1027,6 +1222,31 @@ gs_plugin_launch (GsPlugin *plugin, |
655 | +======= |
656 | +@@ -1030,6 +1227,31 @@ gs_plugin_launch (GsPlugin *plugin, |
657 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
658 | return g_app_info_launch (info, NULL, NULL, error); |
659 | } |
660 | |
661 | @@ -1124,8 +1243,35 @@ index 693f9c8a..064443d1 100644 |
662 | gboolean |
663 | gs_plugin_app_remove (GsPlugin *plugin, |
664 | GsApp *app, |
665 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
666 | diff --git a/src/gs-details-page.c b/src/gs-details-page.c |
667 | index 3eafb32b..3d57a8af 100644 |
668 | +======= |
669 | +@@ -1072,21 +1294,15 @@ gs_plugin_auth_login (GsPlugin *plugin, GsAuth *auth, |
670 | + g_clear_object (&priv->auth_data); |
671 | + if (priv->snapd_supports_polkit) { |
672 | + g_autoptr(SnapdClient) client = NULL; |
673 | +-#ifdef SNAPD_GLIB_VERSION_1_26 |
674 | + g_autoptr(SnapdUserInformation) user_information = NULL; |
675 | +-#endif |
676 | + |
677 | + client = get_client (plugin, error); |
678 | + if (client == NULL) |
679 | + return FALSE; |
680 | + |
681 | +-#ifdef SNAPD_GLIB_VERSION_1_26 |
682 | + user_information = snapd_client_login2_sync (client, gs_auth_get_username (auth), gs_auth_get_password (auth), gs_auth_get_pin (auth), NULL, error); |
683 | + if (user_information != NULL) |
684 | + priv->auth_data = g_object_ref (snapd_user_information_get_auth_data (user_information)); |
685 | +-#else |
686 | +- priv->auth_data = snapd_client_login_sync (client, gs_auth_get_username (auth), gs_auth_get_password (auth), gs_auth_get_pin (auth), NULL, error); |
687 | +-#endif |
688 | + } |
689 | + else |
690 | + priv->auth_data = snapd_login_sync (gs_auth_get_username (auth), gs_auth_get_password (auth), gs_auth_get_pin (auth), NULL, error); |
691 | +diff --git a/src/gs-details-page.c b/src/gs-details-page.c |
692 | +index 5380541c..d2132d3b 100644 |
693 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
694 | --- a/src/gs-details-page.c |
695 | +++ b/src/gs-details-page.c |
696 | @@ -113,6 +113,8 @@ struct _GsDetailsPage |
697 | @@ -1218,7 +1364,11 @@ index 3eafb32b..3d57a8af 100644 |
698 | NULL); |
699 | gs_plugin_loader_job_process_async (self->plugin_loader, plugin_job, |
700 | self->cancellable, |
701 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
702 | @@ -1932,6 +1949,165 @@ gs_details_page_app_cancel_button_cb (GtkWidget *widget, GsDetailsPage *self) |
703 | +======= |
704 | +@@ -1930,6 +1947,166 @@ gs_details_page_app_cancel_button_cb (GtkWidget *widget, GsDetailsPage *self) |
705 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
706 | gs_details_page_remove_app (self); |
707 | } |
708 | |
709 | @@ -1384,7 +1534,11 @@ index 3eafb32b..3d57a8af 100644 |
710 | static void |
711 | gs_details_page_app_install_button_cb (GtkWidget *widget, GsDetailsPage *self) |
712 | { |
713 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
714 | @@ -2405,6 +2581,9 @@ gs_details_page_setup (GsPage *page, |
715 | +======= |
716 | +@@ -2398,6 +2575,9 @@ gs_details_page_setup (GsPage *page, |
717 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
718 | g_signal_connect (self->button_donate, "clicked", |
719 | G_CALLBACK (gs_details_page_donate_cb), |
720 | self); |
721 | @@ -1394,7 +1548,11 @@ index 3eafb32b..3d57a8af 100644 |
722 | g_signal_connect (self->button_details_license_free, "clicked", |
723 | G_CALLBACK (gs_details_page_license_free_cb), |
724 | self); |
725 | +<<<<<<< debian/patches/0011-Support-snap-channels.patch |
726 | @@ -2505,6 +2684,10 @@ gs_details_page_class_init (GsDetailsPageClass *klass) |
727 | +======= |
728 | +@@ -2495,6 +2675,10 @@ gs_details_page_class_init (GsDetailsPageClass *klass) |
729 | +>>>>>>> debian/patches/0011-Support-snap-channels.patch |
730 | gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_size_installed_value); |
731 | gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_updated_title); |
732 | gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_updated_value); |
733 | diff --git a/debian/patches/0014-Add-a-basic-permissions-system.patch b/debian/patches/0014-Add-a-basic-permissions-system.patch |
734 | index 37803b3..77bcad1 100644 |
735 | --- a/debian/patches/0014-Add-a-basic-permissions-system.patch |
736 | +++ b/debian/patches/0014-Add-a-basic-permissions-system.patch |
737 | @@ -1,7 +1,14 @@ |
738 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
739 | From f5fe307b183ae0517fb52157698bf0dbdb3364c3 Mon Sep 17 00:00:00 2001 |
740 | From: Robert Ancell <robert.ancell@canonical.com> |
741 | Date: Fri, 26 May 2017 16:30:56 +1200 |
742 | Subject: [PATCH 14/24] Add a basic permissions system |
743 | +======= |
744 | +From ca6ed906e2d9ee5f0116e708e369e32124a79cb0 Mon Sep 17 00:00:00 2001 |
745 | +From: Robert Ancell <robert.ancell@canonical.com> |
746 | +Date: Fri, 26 May 2017 16:30:56 +1200 |
747 | +Subject: [PATCH 14/22] Add a basic permissions system |
748 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
749 | |
750 | --- |
751 | lib/gs-app.c | 55 ++++++++ |
752 | @@ -47,10 +54,17 @@ Subject: [PATCH 14/24] Add a basic permissions system |
753 | create mode 100644 src/gs-permission-switch.h |
754 | |
755 | diff --git a/lib/gs-app.c b/lib/gs-app.c |
756 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
757 | index 41fe8039..28ceb474 100644 |
758 | --- a/lib/gs-app.c |
759 | +++ b/lib/gs-app.c |
760 | @@ -92,6 +92,7 @@ typedef struct |
761 | +======= |
762 | +index 04617630..f342844b 100644 |
763 | +--- a/lib/gs-app.c |
764 | ++++ b/lib/gs-app.c |
765 | +@@ -91,6 +91,7 @@ typedef struct |
766 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
767 | gchar *origin; |
768 | gchar *origin_appstream; |
769 | gchar *origin_hostname; |
770 | @@ -58,7 +72,11 @@ index 41fe8039..28ceb474 100644 |
771 | gchar *update_version; |
772 | gchar *update_version_ui; |
773 | gchar *update_details; |
774 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
775 | @@ -448,6 +449,18 @@ gs_app_to_string_append (GsApp *app, GString *str) |
776 | +======= |
777 | +@@ -450,6 +451,18 @@ gs_app_to_string_append (GsApp *app, GString *str) |
778 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
779 | gs_app_kv_lpad (str, "icon-filename", |
780 | as_icon_get_filename (icon)); |
781 | } |
782 | @@ -77,7 +95,11 @@ index 41fe8039..28ceb474 100644 |
783 | if (priv->match_value != 0) |
784 | gs_app_kv_printf (str, "match-value", "%05x", priv->match_value); |
785 | if (priv->priority != 0) |
786 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
787 | @@ -2599,6 +2612,46 @@ gs_app_set_origin_hostname (GsApp *app, const gchar *origin_hostname) |
788 | +======= |
789 | +@@ -2647,6 +2660,46 @@ gs_app_set_origin_hostname (GsApp *app, const gchar *origin_hostname) |
790 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
791 | priv->origin_hostname = g_strdup (origin_hostname); |
792 | } |
793 | |
794 | @@ -124,7 +146,11 @@ index 41fe8039..28ceb474 100644 |
795 | /** |
796 | * gs_app_add_screenshot: |
797 | * @app: a #GsApp |
798 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
799 | @@ -4256,6 +4309,7 @@ gs_app_dispose (GObject *object) |
800 | +======= |
801 | +@@ -4327,6 +4380,7 @@ gs_app_dispose (GObject *object) |
802 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
803 | g_clear_pointer (&priv->icons, g_ptr_array_unref); |
804 | g_clear_pointer (&priv->channels, g_ptr_array_unref); |
805 | g_clear_object (&priv->active_channel); |
806 | @@ -132,7 +158,11 @@ index 41fe8039..28ceb474 100644 |
807 | |
808 | G_OBJECT_CLASS (gs_app_parent_class)->dispose (object); |
809 | } |
810 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
811 | @@ -4444,6 +4498,7 @@ gs_app_init (GsApp *app) |
812 | +======= |
813 | +@@ -4517,6 +4571,7 @@ gs_app_init (GsApp *app) |
814 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
815 | priv->provides = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
816 | priv->icons = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
817 | priv->channels = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); |
818 | @@ -141,7 +171,11 @@ index 41fe8039..28ceb474 100644 |
819 | g_str_equal, |
820 | g_free, |
821 | diff --git a/lib/gs-app.h b/lib/gs-app.h |
822 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
823 | index 225d8708..72636aa1 100644 |
824 | +======= |
825 | +index 7f469fc0..72d723d7 100644 |
826 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
827 | --- a/lib/gs-app.h |
828 | +++ b/lib/gs-app.h |
829 | @@ -30,6 +30,7 @@ |
830 | @@ -913,10 +947,17 @@ index ae5ad87b..ce019a47 100644 |
831 | 'gs-plugin-event.c', |
832 | 'gs-plugin-job.c', |
833 | diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
834 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
835 | index 064443d1..bf5f42f3 100644 |
836 | --- a/plugins/snap/gs-plugin-snap.c |
837 | +++ b/plugins/snap/gs-plugin-snap.c |
838 | @@ -1062,6 +1062,170 @@ gs_plugin_refine_app (GsPlugin *plugin, |
839 | +======= |
840 | +index ad700be7..ecdfc48d 100644 |
841 | +--- a/plugins/snap/gs-plugin-snap.c |
842 | ++++ b/plugins/snap/gs-plugin-snap.c |
843 | +@@ -1044,6 +1044,170 @@ gs_plugin_refine_app (GsPlugin *plugin, |
844 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
845 | if (flags & GS_PLUGIN_REFINE_FLAGS_REQUIRE_ICON && gs_app_get_pixbuf (app) == NULL) |
846 | load_icon (plugin, client, app, gs_app_get_metadata_item (app, "snap::name"), local_snap, store_snap, cancellable); |
847 | |
848 | @@ -1087,7 +1128,11 @@ index 064443d1..bf5f42f3 100644 |
849 | return TRUE; |
850 | } |
851 | |
852 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
853 | @@ -1273,6 +1437,55 @@ gs_plugin_app_remove (GsPlugin *plugin, |
854 | +======= |
855 | +@@ -1255,6 +1419,55 @@ gs_plugin_app_remove (GsPlugin *plugin, |
856 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
857 | return TRUE; |
858 | } |
859 | |
860 | @@ -1168,7 +1213,11 @@ index 5ce90429..b6c9916d 100644 |
861 | <file preprocess="xml-stripblanks">gs-prefs-dialog.ui</file> |
862 | <file preprocess="xml-stripblanks">gs-removal-dialog.ui</file> |
863 | diff --git a/src/gs-details-page.c b/src/gs-details-page.c |
864 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
865 | index 3d57a8af..071f91e6 100644 |
866 | +======= |
867 | +index 256881a9..8647bdfe 100644 |
868 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
869 | --- a/src/gs-details-page.c |
870 | +++ b/src/gs-details-page.c |
871 | @@ -39,6 +39,7 @@ |
872 | @@ -1264,7 +1313,11 @@ index 3d57a8af..071f91e6 100644 |
873 | gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, infobar_details_app_norepo); |
874 | gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, infobar_details_app_repo); |
875 | diff --git a/src/gs-details-page.ui b/src/gs-details-page.ui |
876 | +<<<<<<< debian/patches/0014-Add-a-basic-permissions-system.patch |
877 | index 154ce197..a3f2ccb5 100644 |
878 | +======= |
879 | +index a9b1aad4..255617c4 100644 |
880 | +>>>>>>> debian/patches/0014-Add-a-basic-permissions-system.patch |
881 | --- a/src/gs-details-page.ui |
882 | +++ b/src/gs-details-page.ui |
883 | @@ -367,6 +367,22 @@ |
884 | diff --git a/debian/patches/0020-Show-verified-developers.patch b/debian/patches/0020-Show-verified-developers.patch |
885 | new file mode 100644 |
886 | index 0000000..582b49e |
887 | --- /dev/null |
888 | +++ b/debian/patches/0020-Show-verified-developers.patch |
889 | @@ -0,0 +1,217 @@ |
890 | +From 4a94b04735a2ad8852a2a148e06a631f9aff334e Mon Sep 17 00:00:00 2001 |
891 | +From: Robert Ancell <robert.ancell@canonical.com> |
892 | +Date: Tue, 28 Aug 2018 12:15:09 +1200 |
893 | +Subject: [PATCH 20/24] Show verified developers |
894 | + |
895 | +--- |
896 | + lib/gs-app.c | 17 +++++++++++++++++ |
897 | + lib/gs-app.h | 3 +++ |
898 | + meson.build | 2 +- |
899 | + plugins/snap/gs-plugin-snap.c | 8 +++++++- |
900 | + src/developer-verified.svg | 12 ++++++++++++ |
901 | + src/gnome-software.gresource.xml | 1 + |
902 | + src/gs-details-page.c | 3 +++ |
903 | + src/gs-details-page.ui | 30 ++++++++++++++++++++++-------- |
904 | + 8 files changed, 66 insertions(+), 10 deletions(-) |
905 | + create mode 100644 src/developer-verified.svg |
906 | + |
907 | +diff --git a/lib/gs-app.c b/lib/gs-app.c |
908 | +index c8c5876b..bc7d8d75 100644 |
909 | +--- a/lib/gs-app.c |
910 | ++++ b/lib/gs-app.c |
911 | +@@ -133,6 +133,7 @@ typedef struct |
912 | + GsChannel *active_channel; |
913 | + GCancellable *cancellable; |
914 | + GsPluginAction pending_action; |
915 | ++ gboolean developer_is_verified; |
916 | + } GsAppPrivate; |
917 | + |
918 | + enum { |
919 | +@@ -1657,6 +1658,22 @@ gs_app_set_developer_name (GsApp *app, const gchar *developer_name) |
920 | + _g_set_str (&priv->developer_name, developer_name); |
921 | + } |
922 | + |
923 | ++gboolean |
924 | ++gs_app_get_developer_is_verified (GsApp *app) |
925 | ++{ |
926 | ++ GsAppPrivate *priv = gs_app_get_instance_private (app); |
927 | ++ g_return_val_if_fail (GS_IS_APP (app), FALSE); |
928 | ++ return priv->developer_is_verified; |
929 | ++} |
930 | ++ |
931 | ++void |
932 | ++gs_app_set_developer_is_verified (GsApp *app, gboolean developer_is_verified) |
933 | ++{ |
934 | ++ GsAppPrivate *priv = gs_app_get_instance_private (app); |
935 | ++ g_return_if_fail (GS_IS_APP (app)); |
936 | ++ priv->developer_is_verified = developer_is_verified; |
937 | ++} |
938 | ++ |
939 | + /** |
940 | + * gs_app_get_pixbuf: |
941 | + * @app: a #GsApp |
942 | +diff --git a/lib/gs-app.h b/lib/gs-app.h |
943 | +index 72d723d7..ffccf5db 100644 |
944 | +--- a/lib/gs-app.h |
945 | ++++ b/lib/gs-app.h |
946 | +@@ -168,6 +168,9 @@ void gs_app_set_project_group (GsApp *app, |
947 | + const gchar *gs_app_get_developer_name (GsApp *app); |
948 | + void gs_app_set_developer_name (GsApp *app, |
949 | + const gchar *developer_name); |
950 | ++gboolean gs_app_get_developer_is_verified (GsApp *app); |
951 | ++void gs_app_set_developer_is_verified (GsApp *app, |
952 | ++ gboolean developer_is_verified); |
953 | + const gchar *gs_app_get_version (GsApp *app); |
954 | + const gchar *gs_app_get_version_ui (GsApp *app); |
955 | + void gs_app_set_version (GsApp *app, |
956 | +diff --git a/meson.build b/meson.build |
957 | +index 3b2f726e..20fdd31a 100644 |
958 | +--- a/meson.build |
959 | ++++ b/meson.build |
960 | +@@ -166,7 +166,7 @@ if get_option('enable-gudev') |
961 | + endif |
962 | + |
963 | + if get_option('enable-snap') |
964 | +- snap = dependency('snapd-glib', version : '>= 1.31') |
965 | ++ snap = dependency('snapd-glib', version : '>= 1.42') |
966 | + endif |
967 | + |
968 | + gnome = import('gnome') |
969 | +diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
970 | +index 405ec8e1..fadb7866 100644 |
971 | +--- a/plugins/snap/gs-plugin-snap.c |
972 | ++++ b/plugins/snap/gs-plugin-snap.c |
973 | +@@ -934,6 +934,7 @@ gs_plugin_refine_app (GsPlugin *plugin, |
974 | + g_autoptr(SnapdSnap) local_snap = NULL; |
975 | + g_autoptr(SnapdSnap) store_snap = NULL; |
976 | + SnapdSnap *snap; |
977 | ++ const gchar *developer_name; |
978 | + g_autofree gchar *description = NULL; |
979 | + |
980 | + /* not us */ |
981 | +@@ -1013,7 +1014,12 @@ gs_plugin_refine_app (GsPlugin *plugin, |
982 | + if (description != NULL) |
983 | + gs_app_set_description (app, GS_APP_QUALITY_NORMAL, description); |
984 | + gs_app_set_license (app, GS_APP_QUALITY_NORMAL, snapd_snap_get_license (snap)); |
985 | +- gs_app_set_developer_name (app, snapd_snap_get_developer (snap)); |
986 | ++ developer_name = snapd_snap_get_publisher_display_name (snap); |
987 | ++ if (developer_name == NULL) |
988 | ++ developer_name = snapd_snap_get_publisher_username (snap); |
989 | ++ gs_app_set_developer_name (app, developer_name); |
990 | ++ if (snapd_snap_get_publisher_validation (snap) == SNAPD_PUBLISHER_VALIDATION_VERIFIED) |
991 | ++ gs_app_set_developer_is_verified (app, TRUE); |
992 | + |
993 | + snap = local_snap != NULL ? local_snap : store_snap; |
994 | + gs_app_set_version (app, snapd_snap_get_version (snap)); |
995 | +diff --git a/src/developer-verified.svg b/src/developer-verified.svg |
996 | +new file mode 100644 |
997 | +index 00000000..57c0f11b |
998 | +--- /dev/null |
999 | ++++ b/src/developer-verified.svg |
1000 | +@@ -0,0 +1,12 @@ |
1001 | ++<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
1002 | ++<svg xmlns="http://www.w3.org/2000/svg" height="12px" width="12px" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 12 12"><!-- Generator: Sketch 50.2 (55047) - http://www.bohemiancoding.com/sketch --> |
1003 | ++ <title>path6490</title> |
1004 | ++ <desc>Created with Sketch.</desc> |
1005 | ++ <g id="misc" fill-rule="evenodd" fill="none"> |
1006 | ++ <g id="Artboard" fill-rule="nonzero" fill="#82BEA0" transform="translate(-419 -444)"> |
1007 | ++ <g id="VALIDATED--SNAPCRAFTER-ICON" transform="translate(419 444)"> |
1008 | ++ <path id="path6490" d="m5.0239 0.38296l-0.4325 0.40107c-0.3507 0.32527-0.8065 0.51407-1.2846 0.53217l-0.5886 0.0222c-0.75 0.0283-1.3515 0.6298-1.3798 1.3798l-0.0222 0.5886c-0.0181 0.4781-0.2069 0.9339-0.53217 1.2846l-0.40107 0.4325c-0.51061 0.5506-0.51061 1.4016 0 1.9522l0.40107 0.4325c0.32527 0.3507 0.51407 0.8065 0.53217 1.2846l0.0222 0.5886c0.0283 0.7502 0.6298 1.3512 1.3798 1.3802l0.5886 0.022c0.4781 0.018 0.9339 0.207 1.2846 0.532l0.4325 0.401c0.5506 0.511 1.4016 0.511 1.9522 0l0.4325-0.401c0.3507-0.325 0.8065-0.514 1.2846-0.532l0.5886-0.022c0.7502-0.029 1.3512-0.63 1.3802-1.3802l0.022-0.5886c0.018-0.4781 0.207-0.9339 0.532-1.2846l0.401-0.4325c0.511-0.5506 0.511-1.4016 0-1.9522l-0.401-0.4325c-0.325-0.3507-0.514-0.8065-0.532-1.2846l-0.022-0.5886c-0.029-0.75-0.63-1.3515-1.3802-1.3798l-0.5886-0.0222c-0.4781-0.0181-0.9339-0.2069-1.2846-0.53217l-0.4325-0.40107c-0.5506-0.51061-1.4016-0.51061-1.9522 0zm3.3697 3.1711l0.8675 0.8565-4.2062 4.2411-2.316-2.3398 0.8611-0.8549 1.4549 1.4659 3.3387-3.3688z"/> |
1009 | ++ </g> |
1010 | ++ </g> |
1011 | ++ </g> |
1012 | ++</svg> |
1013 | +\ No newline at end of file |
1014 | +diff --git a/src/gnome-software.gresource.xml b/src/gnome-software.gresource.xml |
1015 | +index 44e5a28a..46022303 100644 |
1016 | +--- a/src/gnome-software.gresource.xml |
1017 | ++++ b/src/gnome-software.gresource.xml |
1018 | +@@ -38,5 +38,6 @@ |
1019 | + <file preprocess="xml-stripblanks">org.freedesktop.PackageKit.xml</file> |
1020 | + <file>gtk-style.css</file> |
1021 | + <file>gtk-style-hc.css</file> |
1022 | ++ <file>developer-verified.svg</file> |
1023 | + </gresource> |
1024 | + </gresources> |
1025 | +diff --git a/src/gs-details-page.c b/src/gs-details-page.c |
1026 | +index 8647bdfe..16677d2a 100644 |
1027 | +--- a/src/gs-details-page.c |
1028 | ++++ b/src/gs-details-page.c |
1029 | +@@ -101,6 +101,7 @@ struct _GsDetailsPage |
1030 | + GtkWidget *label_details_category_value; |
1031 | + GtkWidget *label_details_developer_title; |
1032 | + GtkWidget *label_details_developer_value; |
1033 | ++ GtkWidget *image_details_developer_verified; |
1034 | + GtkWidget *button_details_license_free; |
1035 | + GtkWidget *button_details_license_nonfree; |
1036 | + GtkWidget *button_details_license_unknown; |
1037 | +@@ -963,6 +964,7 @@ gs_details_page_refresh_all (GsDetailsPage *self) |
1038 | + gtk_label_set_label (GTK_LABEL (self->label_details_developer_value), tmp); |
1039 | + gtk_widget_set_visible (self->label_details_developer_value, TRUE); |
1040 | + } |
1041 | ++ gtk_widget_set_visible (self->image_details_developer_verified, gs_app_get_developer_is_verified (self->app)); |
1042 | + |
1043 | + /* set the license buttons */ |
1044 | + tmp = gs_app_get_license (self->app); |
1045 | +@@ -2702,6 +2704,7 @@ gs_details_page_class_init (GsDetailsPageClass *klass) |
1046 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_category_value); |
1047 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_developer_title); |
1048 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_developer_value); |
1049 | ++ gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, image_details_developer_verified); |
1050 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_free); |
1051 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_nonfree); |
1052 | + gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_unknown); |
1053 | +diff --git a/src/gs-details-page.ui b/src/gs-details-page.ui |
1054 | +index 255617c4..bc03b421 100644 |
1055 | +--- a/src/gs-details-page.ui |
1056 | ++++ b/src/gs-details-page.ui |
1057 | +@@ -1133,16 +1133,30 @@ |
1058 | + </packing> |
1059 | + </child> |
1060 | + <child> |
1061 | +- <object class="GtkLabel" id="label_details_developer_value"> |
1062 | ++ <object class="GtkBox" id="box_details_developer"> |
1063 | + <property name="visible">True</property> |
1064 | + <property name="can_focus">False</property> |
1065 | + <property name="hexpand">True</property> |
1066 | +- <property name="label">Yorba</property> |
1067 | +- <property name="wrap">True</property> |
1068 | +- <property name="selectable">True</property> |
1069 | +- <property name="max_width_chars">10</property> |
1070 | +- <property name="xalign">0</property> |
1071 | +- <property name="yalign">0.5</property> |
1072 | ++ <property name="spacing">3</property> |
1073 | ++ <child> |
1074 | ++ <object class="GtkLabel" id="label_details_developer_value"> |
1075 | ++ <property name="visible">True</property> |
1076 | ++ <property name="can_focus">False</property> |
1077 | ++ <property name="label">Yorba</property> |
1078 | ++ <property name="selectable">True</property> |
1079 | ++ <property name="max_width_chars">10</property> |
1080 | ++ <property name="xalign">0</property> |
1081 | ++ <property name="yalign">0.5</property> |
1082 | ++ </object> |
1083 | ++ </child> |
1084 | ++ <child> |
1085 | ++ <object class="GtkImage" id="image_details_developer_verified"> |
1086 | ++ <property name="visible">True</property> |
1087 | ++ <property name="can_focus">False</property> |
1088 | ++ <property name="pixel_size">16</property> |
1089 | ++ <property name="resource">/org/gnome/Software/developer-verified.svg</property> |
1090 | ++ </object> |
1091 | ++ </child> |
1092 | + </object> |
1093 | + <packing> |
1094 | + <property name="left_attach">1</property> |
1095 | +@@ -1455,7 +1469,7 @@ |
1096 | + <widget name="label_details_category_value"/> |
1097 | + <widget name="label_details_size_installed_value"/> |
1098 | + <widget name="label_details_size_download_value"/> |
1099 | +- <widget name="label_details_developer_value"/> |
1100 | ++ <widget name="box_details_developer"/> |
1101 | + <widget name="button_details_license_free"/> |
1102 | + </widgets> |
1103 | + </object> |
1104 | +-- |
1105 | +2.17.1 |
1106 | + |
1107 | diff --git a/debian/patches/0021-snap-Use-wide-scope-when-searching.patch b/debian/patches/0021-snap-Use-wide-scope-when-searching.patch |
1108 | new file mode 100644 |
1109 | index 0000000..221f8fe |
1110 | --- /dev/null |
1111 | +++ b/debian/patches/0021-snap-Use-wide-scope-when-searching.patch |
1112 | @@ -0,0 +1,70 @@ |
1113 | +From 0c6077b03a2d31eaecc1ea8968ec395270585c9c Mon Sep 17 00:00:00 2001 |
1114 | +From: Robert Ancell <robert.ancell@canonical.com> |
1115 | +Date: Tue, 7 Aug 2018 16:49:35 +1200 |
1116 | +Subject: [PATCH 21/24] snap: Use wide scope when searching |
1117 | + |
1118 | +--- |
1119 | + plugins/snap/gs-plugin-snap.c | 12 ++++++------ |
1120 | + 1 file changed, 6 insertions(+), 6 deletions(-) |
1121 | + |
1122 | +diff --git a/plugins/snap/gs-plugin-snap.c b/plugins/snap/gs-plugin-snap.c |
1123 | +index 509f7d0a..57fc7fa7 100644 |
1124 | +--- a/plugins/snap/gs-plugin-snap.c |
1125 | ++++ b/plugins/snap/gs-plugin-snap.c |
1126 | +@@ -385,7 +385,7 @@ gs_plugin_url_to_app (GsPlugin *plugin, |
1127 | + |
1128 | + /* create app */ |
1129 | + path = gs_utils_get_url_path (url); |
1130 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_MATCH_NAME, NULL, path, cancellable, NULL); |
1131 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE | SNAPD_FIND_FLAGS_MATCH_NAME, NULL, path, cancellable, NULL); |
1132 | + if (snaps == NULL || snaps->len < 1) |
1133 | + return TRUE; |
1134 | + |
1135 | +@@ -451,7 +451,7 @@ gs_plugin_add_featured (GsPlugin *plugin, |
1136 | + g_autoptr(GString) background_css = NULL; |
1137 | + g_autofree gchar *css = NULL; |
1138 | + |
1139 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_NONE, "featured", NULL, cancellable, error); |
1140 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE, "featured", NULL, cancellable, error); |
1141 | + |
1142 | + if (snaps == NULL) |
1143 | + return FALSE; |
1144 | +@@ -520,7 +520,7 @@ gs_plugin_add_popular (GsPlugin *plugin, |
1145 | + g_autoptr(GPtrArray) snaps = NULL; |
1146 | + guint i; |
1147 | + |
1148 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_NONE, "featured", NULL, cancellable, error); |
1149 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE, "featured", NULL, cancellable, error); |
1150 | + if (snaps == NULL) |
1151 | + return FALSE; |
1152 | + |
1153 | +@@ -578,7 +578,7 @@ gs_plugin_add_category_apps (GsPlugin *plugin, |
1154 | + g_autoptr(GPtrArray) snaps = NULL; |
1155 | + guint j; |
1156 | + |
1157 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_NONE, tokens[i], NULL, cancellable, error); |
1158 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE, tokens[i], NULL, cancellable, error); |
1159 | + if (snaps == NULL) |
1160 | + return FALSE; |
1161 | + for (j = 0; j < snaps->len; j++) { |
1162 | +@@ -636,7 +636,7 @@ gs_plugin_add_search (GsPlugin *plugin, |
1163 | + guint i; |
1164 | + |
1165 | + query = g_strjoinv (" ", values); |
1166 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_NONE, NULL, query, cancellable, error); |
1167 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE, NULL, query, cancellable, error); |
1168 | + if (snaps == NULL) |
1169 | + return FALSE; |
1170 | + |
1171 | +@@ -659,7 +659,7 @@ get_store_snap (GsPlugin *plugin, const gchar *name, gboolean need_details, GCan |
1172 | + if (snap != NULL) |
1173 | + return g_object_ref (snap); |
1174 | + |
1175 | +- snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_MATCH_NAME, NULL, name, cancellable, error); |
1176 | ++ snaps = find_snaps (plugin, SNAPD_FIND_FLAGS_SCOPE_WIDE | SNAPD_FIND_FLAGS_MATCH_NAME, NULL, name, cancellable, error); |
1177 | + if (snaps == NULL || snaps->len < 1) |
1178 | + return NULL; |
1179 | + |
1180 | +-- |
1181 | +2.17.1 |
1182 | + |
1183 | diff --git a/debian/patches/0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch b/debian/patches/0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch |
1184 | new file mode 100644 |
1185 | index 0000000..070fd81 |
1186 | --- /dev/null |
1187 | +++ b/debian/patches/0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch |
1188 | @@ -0,0 +1,25 @@ |
1189 | +From 7932bac03d7d47011ee170dc2b31e9de1512812c Mon Sep 17 00:00:00 2001 |
1190 | +From: Jean-Baptiste Lallement <jean-baptiste.lallement@canonical.com> |
1191 | +Date: Mon, 25 Jun 2018 16:14:38 +1200 |
1192 | +Subject: [PATCH 22/25] Delay startup of GNOME Software to allow the Shell to |
1193 | + load first. |
1194 | + |
1195 | +--- |
1196 | + src/gnome-software-service.desktop.in | 1 + |
1197 | + 1 file changed, 1 insertion(+) |
1198 | + |
1199 | +diff --git a/src/gnome-software-service.desktop.in b/src/gnome-software-service.desktop.in |
1200 | +index dc4d4d90..fb47759b 100644 |
1201 | +--- a/src/gnome-software-service.desktop.in |
1202 | ++++ b/src/gnome-software-service.desktop.in |
1203 | +@@ -1,6 +1,7 @@ |
1204 | + [Desktop Entry] |
1205 | + Type=Application |
1206 | + Name=GNOME Software |
1207 | ++X-GNOME-Autostart-Delay=60 |
1208 | + Exec=@bindir@/gnome-software --gapplication-service |
1209 | + OnlyShowIn=GNOME;Unity; |
1210 | + NoDisplay=true |
1211 | +-- |
1212 | +2.17.1 |
1213 | + |
1214 | diff --git a/debian/patches/0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch b/debian/patches/0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch |
1215 | new file mode 100644 |
1216 | index 0000000..eeb6403 |
1217 | --- /dev/null |
1218 | +++ b/debian/patches/0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch |
1219 | @@ -0,0 +1,114 @@ |
1220 | +From 3b71756838799497639163a637ef7120a756277e Mon Sep 17 00:00:00 2001 |
1221 | +From: Joaquim Rocha <jrocha@endlessm.com> |
1222 | +Date: Wed, 23 May 2018 13:17:37 +0200 |
1223 | +Subject: [PATCH 23/28] Revert "Revert "flatpak: Use "list of related apps for |
1224 | + install" when updating an app"" |
1225 | + |
1226 | +This reverts commit 79c14a2c67ec1ac459ace6c2e08dce74f78a9e16 and brings |
1227 | +back the ae5c13cc39eae89ab261bab44ea2fd0fc941f9d5 and |
1228 | +eb68607baea3b83b719acb739516b361a6758bcf. |
1229 | + |
1230 | +The mentioned functionality had been reverted in order for the release |
1231 | +3.28 but it's necessary for getting the related apps when updating apps. |
1232 | +--- |
1233 | + plugins/flatpak/gs-flatpak.c | 53 +++++++++++++++++++++++++++--------- |
1234 | + 1 file changed, 40 insertions(+), 13 deletions(-) |
1235 | + |
1236 | +diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c |
1237 | +index 6a424ed8..8f57eda6 100644 |
1238 | +--- a/plugins/flatpak/gs-flatpak.c |
1239 | ++++ b/plugins/flatpak/gs-flatpak.c |
1240 | +@@ -2587,8 +2587,11 @@ gs_flatpak_refine_runtime_for_install (GsFlatpak *self, |
1241 | + } |
1242 | + |
1243 | + static GsAppList * |
1244 | +-gs_flatpak_get_list_for_install (GsFlatpak *self, GsApp *app, |
1245 | +- GCancellable *cancellable, GError **error) |
1246 | ++gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1247 | ++ GsApp *app, |
1248 | ++ gboolean is_update, |
1249 | ++ GCancellable *cancellable, |
1250 | ++ GError **error) |
1251 | + { |
1252 | + GsApp *runtime; |
1253 | + g_autofree gchar *ref = NULL; |
1254 | +@@ -2596,6 +2599,7 @@ gs_flatpak_get_list_for_install (GsFlatpak *self, GsApp *app, |
1255 | + g_autoptr(GPtrArray) xrefs_installed = NULL; |
1256 | + g_autoptr(GHashTable) hash_installed = NULL; |
1257 | + g_autoptr(GsAppList) list = gs_app_list_new (); |
1258 | ++ g_autofree gchar *app_ref = NULL; |
1259 | + |
1260 | + /* get the list of installed apps */ |
1261 | + xrefs_installed = flatpak_installation_list_installed_refs (self->installation, |
1262 | +@@ -2658,26 +2662,49 @@ gs_flatpak_get_list_for_install (GsFlatpak *self, GsApp *app, |
1263 | + /* already installed? */ |
1264 | + app_tmp = gs_flatpak_create_app (self, FLATPAK_REF (xref_related)); |
1265 | + ref_display = gs_flatpak_app_get_ref_display (app_tmp); |
1266 | +- if (g_hash_table_contains (hash_installed, ref_display)) { |
1267 | ++ if (!is_update && g_hash_table_contains (hash_installed, ref_display)) { |
1268 | + g_debug ("not adding related %s as already installed", ref_display); |
1269 | +- } else { |
1270 | +- gs_app_set_origin (app_tmp, gs_app_get_origin (app)); |
1271 | +- g_debug ("adding related %s for install", ref_display); |
1272 | +- |
1273 | +- if (!gs_plugin_refine_item_state (self, app_tmp, cancellable, error)) |
1274 | +- return NULL; |
1275 | ++ continue; |
1276 | ++ } |
1277 | + |
1278 | +- gs_app_list_add (list, app_tmp); |
1279 | ++ gs_app_set_origin (app_tmp, gs_app_get_origin (app)); |
1280 | ++ if (!gs_plugin_refine_item_state (self, app_tmp, cancellable, error)) |
1281 | ++ return FALSE; |
1282 | ++ if (is_update && !gs_app_is_updatable (app_tmp)) { |
1283 | ++ g_debug ("not adding related %s as it's not updatable", ref_display); |
1284 | ++ continue; |
1285 | + } |
1286 | ++ g_debug ("adding related %s for install/update", ref_display); |
1287 | ++ gs_app_list_add (list, app_tmp); |
1288 | + } |
1289 | + |
1290 | +- /* add the original app last unless it's a proxy app */ |
1291 | +- if (!gs_app_has_quirk (app, AS_APP_QUIRK_IS_PROXY)) |
1292 | ++ /* add the original app last unless it's already installed or is a proxy app */ |
1293 | ++ app_ref = gs_flatpak_app_get_ref_display (app); |
1294 | ++ if (!gs_app_has_quirk (app, AS_APP_QUIRK_IS_PROXY) && |
1295 | ++ !g_hash_table_contains (hash_installed, app_ref)) |
1296 | + gs_app_list_add (list, app); |
1297 | + |
1298 | + return g_steal_pointer (&list); |
1299 | + } |
1300 | + |
1301 | ++static GsAppList * |
1302 | ++gs_flatpak_get_list_for_install (GsFlatpak *self, |
1303 | ++ GsApp *app, |
1304 | ++ GCancellable *cancellable, |
1305 | ++ GError **error) |
1306 | ++{ |
1307 | ++ return gs_flatpak_get_list_for_install_or_update (self, app, FALSE, cancellable, error); |
1308 | ++} |
1309 | ++ |
1310 | ++static GsAppList * |
1311 | ++gs_flatpak_get_list_for_update (GsFlatpak *self, |
1312 | ++ GsApp *app, |
1313 | ++ GCancellable *cancellable, |
1314 | ++ GError **error) |
1315 | ++{ |
1316 | ++ return gs_flatpak_get_list_for_install_or_update (self, app, TRUE, cancellable, error); |
1317 | ++} |
1318 | ++ |
1319 | + gboolean |
1320 | + gs_flatpak_app_remove (GsFlatpak *self, |
1321 | + GsApp *app, |
1322 | +@@ -3065,7 +3092,7 @@ gs_flatpak_update_app (GsFlatpak *self, |
1323 | + } |
1324 | + |
1325 | + /* get the list of apps to process */ |
1326 | +- list = gs_flatpak_get_list_for_install (self, app, cancellable, error); |
1327 | ++ list = gs_flatpak_get_list_for_update (self, app, cancellable, error); |
1328 | + if (list == NULL) { |
1329 | + g_prefix_error (error, "failed to get related refs: "); |
1330 | + gs_app_set_state_recover (app); |
1331 | +-- |
1332 | +2.19.1 |
1333 | + |
1334 | diff --git a/debian/patches/0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch b/debian/patches/0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch |
1335 | new file mode 100644 |
1336 | index 0000000..640e5c5 |
1337 | --- /dev/null |
1338 | +++ b/debian/patches/0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch |
1339 | @@ -0,0 +1,37 @@ |
1340 | +From 54e1bbc547a52485cec6d2de32ff02205e9c5917 Mon Sep 17 00:00:00 2001 |
1341 | +From: Joaquim Rocha <jrocha@endlessm.com> |
1342 | +Date: Wed, 13 Dec 2017 00:48:13 +0000 |
1343 | +Subject: [PATCH 24/28] flatpak: Check if a related app is installed even when |
1344 | + dealing with updates |
1345 | + |
1346 | +When dealing with updates, gs-flatpak gets the list of related apps |
1347 | +(usually runtime extensions) that should be updated together with the |
1348 | +main app. However, if one of those related apps is not installed, the |
1349 | +gs_app_is_updatable call will return FALSE and the app will not be |
1350 | +installed. |
1351 | +This is a problem when e.g. a runtime extension has been mistakenly |
1352 | +removed, or when an app is updated and needs a new runtime extension. |
1353 | + |
1354 | +This patch simply adds a further test for whether the app is installed, |
1355 | +together with the logic mentioned above. |
1356 | +--- |
1357 | + plugins/flatpak/gs-flatpak.c | 3 ++- |
1358 | + 1 file changed, 2 insertions(+), 1 deletion(-) |
1359 | + |
1360 | +diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c |
1361 | +index 8f57eda6..d8781206 100644 |
1362 | +--- a/plugins/flatpak/gs-flatpak.c |
1363 | ++++ b/plugins/flatpak/gs-flatpak.c |
1364 | +@@ -2670,7 +2670,8 @@ gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1365 | + gs_app_set_origin (app_tmp, gs_app_get_origin (app)); |
1366 | + if (!gs_plugin_refine_item_state (self, app_tmp, cancellable, error)) |
1367 | + return FALSE; |
1368 | +- if (is_update && !gs_app_is_updatable (app_tmp)) { |
1369 | ++ if (gs_app_is_installed (app_tmp) && is_update && |
1370 | ++ !gs_app_is_updatable (app_tmp)) { |
1371 | + g_debug ("not adding related %s as it's not updatable", ref_display); |
1372 | + continue; |
1373 | + } |
1374 | +-- |
1375 | +2.19.1 |
1376 | + |
1377 | diff --git a/debian/patches/0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch b/debian/patches/0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch |
1378 | new file mode 100644 |
1379 | index 0000000..22bdc42 |
1380 | --- /dev/null |
1381 | +++ b/debian/patches/0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch |
1382 | @@ -0,0 +1,192 @@ |
1383 | +From 04977409f7f5179f7ce17ab894fd51e3c539f4d6 Mon Sep 17 00:00:00 2001 |
1384 | +From: Joaquim Rocha <jrocha@endlessm.com> |
1385 | +Date: Wed, 23 May 2018 13:02:20 +0200 |
1386 | +Subject: [PATCH 25/28] flatpak: Include related refs to the app's runtime on |
1387 | + install/update |
1388 | + |
1389 | +When installing/updating an app, if its related refs and its runtime |
1390 | +need to be installed as well, then they do. However, refs that are |
1391 | +related to the runtime itself do not get installed, and this is a |
1392 | +problem because some apps may need them (besides being a discrepancy |
1393 | +between using the Flatpak CLI and GNOME Software for installing Flatpak |
1394 | +apps). |
1395 | + |
1396 | +Thus, these changes add any refs related to an app's runtime to the |
1397 | +list of refs that should be installed when installing or updating an |
1398 | +app. Note that it deliberately doesn't update refs related to the |
1399 | +runtime though, just as it doesn't update the runtime when updating an |
1400 | +app. Thus, refs that are related to the runtime get updated together |
1401 | +with it. |
1402 | +--- |
1403 | + plugins/flatpak/gs-flatpak.c | 124 +++++++++++++++++++++++++---------- |
1404 | + 1 file changed, 88 insertions(+), 36 deletions(-) |
1405 | + |
1406 | +diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c |
1407 | +index d8781206..a820918c 100644 |
1408 | +--- a/plugins/flatpak/gs-flatpak.c |
1409 | ++++ b/plugins/flatpak/gs-flatpak.c |
1410 | +@@ -2586,6 +2586,68 @@ gs_flatpak_refine_runtime_for_install (GsFlatpak *self, |
1411 | + return TRUE; |
1412 | + } |
1413 | + |
1414 | ++static GPtrArray * |
1415 | ++gs_flatpak_get_app_remote_related_refs (GsFlatpak *self, |
1416 | ++ GsApp *app, |
1417 | ++ GCancellable *cancellable, |
1418 | ++ GError **error) |
1419 | ++{ |
1420 | ++ g_autofree gchar *ref = NULL; |
1421 | ++ |
1422 | ++ /* lookup any related refs for this ref */ |
1423 | ++ ref = g_strdup_printf ("%s/%s/%s/%s", |
1424 | ++ gs_flatpak_app_get_ref_kind_as_str (app), |
1425 | ++ gs_flatpak_app_get_ref_name (app), |
1426 | ++ gs_flatpak_app_get_ref_arch (app), |
1427 | ++ gs_flatpak_app_get_ref_branch (app)); |
1428 | ++ return flatpak_installation_list_remote_related_refs_sync (self->installation, |
1429 | ++ gs_app_get_origin (app), |
1430 | ++ ref, cancellable, error); |
1431 | ++} |
1432 | ++ |
1433 | ++static gboolean |
1434 | ++gs_flatpak_add_related_refs_to_list (GsFlatpak *self, |
1435 | ++ GsApp *app, |
1436 | ++ GPtrArray *related_refs, |
1437 | ++ GHashTable *hash_installed, |
1438 | ++ gboolean is_update, |
1439 | ++ GsAppList *list, |
1440 | ++ GCancellable *cancellable, |
1441 | ++ GError **error) |
1442 | ++{ |
1443 | ++ for (guint i = 0; i < related_refs->len; i++) { |
1444 | ++ FlatpakRelatedRef *xref_related = g_ptr_array_index (related_refs, i); |
1445 | ++ g_autofree gchar *ref_display = NULL; |
1446 | ++ g_autoptr(GsApp) app_tmp = NULL; |
1447 | ++ |
1448 | ++ /* not included */ |
1449 | ++ if (!gs_flatpak_related_should_download (self, app, xref_related)) |
1450 | ++ continue; |
1451 | ++ |
1452 | ++ /* already installed? */ |
1453 | ++ app_tmp = gs_flatpak_create_app (self, FLATPAK_REF (xref_related)); |
1454 | ++ ref_display = gs_flatpak_app_get_ref_display (app_tmp); |
1455 | ++ if (!is_update && g_hash_table_contains (hash_installed, ref_display)) { |
1456 | ++ g_debug ("not adding related %s as already installed", ref_display); |
1457 | ++ continue; |
1458 | ++ } |
1459 | ++ |
1460 | ++ if (gs_app_get_origin (app_tmp) == NULL) |
1461 | ++ gs_app_set_origin (app_tmp, gs_app_get_origin (app)); |
1462 | ++ |
1463 | ++ if (!gs_plugin_refine_item_state (self, app_tmp, cancellable, error)) |
1464 | ++ return FALSE; |
1465 | ++ if (gs_app_is_installed (app_tmp) && is_update && |
1466 | ++ !gs_app_is_updatable (app_tmp)) { |
1467 | ++ g_debug ("not adding related %s as it's not updatable", ref_display); |
1468 | ++ continue; |
1469 | ++ } |
1470 | ++ g_debug ("adding related %s for install/update", ref_display); |
1471 | ++ gs_app_list_add (list, app_tmp); |
1472 | ++ } |
1473 | ++ return TRUE; |
1474 | ++} |
1475 | ++ |
1476 | + static GsAppList * |
1477 | + gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1478 | + GsApp *app, |
1479 | +@@ -2596,6 +2658,7 @@ gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1480 | + GsApp *runtime; |
1481 | + g_autofree gchar *ref = NULL; |
1482 | + g_autoptr(GPtrArray) related = NULL; |
1483 | ++ g_autoptr(GPtrArray) runtime_related = NULL; |
1484 | + g_autoptr(GPtrArray) xrefs_installed = NULL; |
1485 | + g_autoptr(GHashTable) hash_installed = NULL; |
1486 | + g_autoptr(GsAppList) list = gs_app_list_new (); |
1487 | +@@ -2621,6 +2684,7 @@ gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1488 | + return NULL; |
1489 | + runtime = gs_app_get_update_runtime (app); |
1490 | + if (runtime != NULL) { |
1491 | ++ g_autoptr(GError) local_error = NULL; |
1492 | + g_autofree gchar *ref_display = NULL; |
1493 | + ref_display = gs_flatpak_app_get_ref_display (runtime); |
1494 | + if (g_hash_table_contains (hash_installed, ref_display)) { |
1495 | +@@ -2632,52 +2696,40 @@ gs_flatpak_get_list_for_install_or_update (GsFlatpak *self, |
1496 | + gs_flatpak_app_get_ref_branch (runtime)); |
1497 | + gs_app_list_add (list, runtime); |
1498 | + } |
1499 | ++ |
1500 | ++ /* add refs related to the runtime */ |
1501 | ++ runtime_related = gs_flatpak_get_app_remote_related_refs (self, runtime, |
1502 | ++ cancellable, |
1503 | ++ &local_error); |
1504 | ++ if (runtime_related == NULL) |
1505 | ++ g_debug ("Failed to get related refs for runtime %s when " |
1506 | ++ "installing/updating %s: %s; continuing nonetheless...", |
1507 | ++ gs_app_get_unique_id (runtime), |
1508 | ++ gs_app_get_unique_id (app), |
1509 | ++ local_error->message); |
1510 | + } |
1511 | + |
1512 | + /* lookup any related refs for this ref */ |
1513 | +- ref = g_strdup_printf ("%s/%s/%s/%s", |
1514 | +- gs_flatpak_app_get_ref_kind_as_str (app), |
1515 | +- gs_flatpak_app_get_ref_name (app), |
1516 | +- gs_flatpak_app_get_ref_arch (app), |
1517 | +- gs_flatpak_app_get_ref_branch (app)); |
1518 | +- related = flatpak_installation_list_remote_related_refs_sync (self->installation, |
1519 | +- gs_app_get_origin (app), |
1520 | +- ref, cancellable, error); |
1521 | ++ related = gs_flatpak_get_app_remote_related_refs (self, app, cancellable, error); |
1522 | + if (related == NULL) { |
1523 | + g_prefix_error (error, "using origin %s: ", gs_app_get_origin (app)); |
1524 | + gs_flatpak_error_convert (error); |
1525 | + return NULL; |
1526 | + } |
1527 | + |
1528 | +- /* any extra bits */ |
1529 | +- for (guint i = 0; i < related->len; i++) { |
1530 | +- FlatpakRelatedRef *xref_related = g_ptr_array_index (related, i); |
1531 | +- g_autofree gchar *ref_display = NULL; |
1532 | +- g_autoptr(GsApp) app_tmp = NULL; |
1533 | +- |
1534 | +- /* not included */ |
1535 | +- if (!gs_flatpak_related_should_download (self, app, xref_related)) |
1536 | +- continue; |
1537 | +- |
1538 | +- /* already installed? */ |
1539 | +- app_tmp = gs_flatpak_create_app (self, FLATPAK_REF (xref_related)); |
1540 | +- ref_display = gs_flatpak_app_get_ref_display (app_tmp); |
1541 | +- if (!is_update && g_hash_table_contains (hash_installed, ref_display)) { |
1542 | +- g_debug ("not adding related %s as already installed", ref_display); |
1543 | +- continue; |
1544 | +- } |
1545 | ++ /* add refs related to the app */ |
1546 | ++ if (!gs_flatpak_add_related_refs_to_list (self, app, related, hash_installed, |
1547 | ++ is_update, list, cancellable, error)) |
1548 | ++ return FALSE; |
1549 | + |
1550 | +- gs_app_set_origin (app_tmp, gs_app_get_origin (app)); |
1551 | +- if (!gs_plugin_refine_item_state (self, app_tmp, cancellable, error)) |
1552 | +- return FALSE; |
1553 | +- if (gs_app_is_installed (app_tmp) && is_update && |
1554 | +- !gs_app_is_updatable (app_tmp)) { |
1555 | +- g_debug ("not adding related %s as it's not updatable", ref_display); |
1556 | +- continue; |
1557 | +- } |
1558 | +- g_debug ("adding related %s for install/update", ref_display); |
1559 | +- gs_app_list_add (list, app_tmp); |
1560 | +- } |
1561 | ++ /* add refs related to the runtime; however, we're only adding them if they |
1562 | ++ * need to be installed, as their update should be performed together with |
1563 | ++ * the runtime instead */ |
1564 | ++ if (runtime_related != NULL && |
1565 | ++ !gs_flatpak_add_related_refs_to_list (self, runtime, runtime_related, |
1566 | ++ hash_installed, FALSE, list, |
1567 | ++ cancellable, error)) |
1568 | ++ return FALSE; |
1569 | + |
1570 | + /* add the original app last unless it's already installed or is a proxy app */ |
1571 | + app_ref = gs_flatpak_app_get_ref_display (app); |
1572 | +-- |
1573 | +2.19.1 |
1574 | + |
1575 | diff --git a/debian/patches/0026-shell-search-provider-implement-XUbuntuCancel.patch b/debian/patches/0026-shell-search-provider-implement-XUbuntuCancel.patch |
1576 | new file mode 100644 |
1577 | index 0000000..f914b22 |
1578 | --- /dev/null |
1579 | +++ b/debian/patches/0026-shell-search-provider-implement-XUbuntuCancel.patch |
1580 | @@ -0,0 +1,176 @@ |
1581 | +From 2ac5ea28829ecaff2f8a180f2ef7eefbb07602d9 Mon Sep 17 00:00:00 2001 |
1582 | +From: Andrea Azzarone <andrea.azzarone@canonical.com> |
1583 | +Date: Fri, 7 Sep 2018 19:58:00 +0200 |
1584 | +Subject: [PATCH 24/26] shell-search-provider: implement XUbuntuCancel |
1585 | + |
1586 | +Implement XUbuntuCancel to request search cancellation. This is used by |
1587 | +gnome-shell to cancel the current search e.g. if the search overview is |
1588 | +closed. |
1589 | +--- |
1590 | + src/gs-shell-search-provider.c | 74 +++++++++++++++---- |
1591 | + src/shell-search-provider-dbus-interfaces.xml | 1 + |
1592 | + 2 files changed, 60 insertions(+), 15 deletions(-) |
1593 | + |
1594 | +diff --git a/src/gs-shell-search-provider.c b/src/gs-shell-search-provider.c |
1595 | +index c01d72cb..8c1e0fda 100644 |
1596 | +--- a/src/gs-shell-search-provider.c |
1597 | ++++ b/src/gs-shell-search-provider.c |
1598 | +@@ -45,6 +45,8 @@ struct _GsShellSearchProvider { |
1599 | + GsPluginLoader *plugin_loader; |
1600 | + GCancellable *cancellable; |
1601 | + |
1602 | ++ PendingSearch *current_search; |
1603 | ++ |
1604 | + GHashTable *metas_cache; |
1605 | + GsAppList *search_results; |
1606 | + }; |
1607 | +@@ -58,6 +60,17 @@ pending_search_free (PendingSearch *search) |
1608 | + g_slice_free (PendingSearch, search); |
1609 | + } |
1610 | + |
1611 | ++static void |
1612 | ++cancel_current_search (GsShellSearchProvider *self) |
1613 | ++{ |
1614 | ++ g_debug ("*** Cancel current search"); |
1615 | ++ |
1616 | ++ if (self->cancellable != NULL) { |
1617 | ++ g_cancellable_cancel (self->cancellable); |
1618 | ++ g_clear_object (&self->cancellable); |
1619 | ++ } |
1620 | ++} |
1621 | ++ |
1622 | + static gint |
1623 | + search_sort_by_kudo_cb (GsApp *app1, GsApp *app2, gpointer user_data) |
1624 | + { |
1625 | +@@ -71,6 +84,23 @@ search_sort_by_kudo_cb (GsApp *app1, GsApp *app2, gpointer user_data) |
1626 | + return 0; |
1627 | + } |
1628 | + |
1629 | ++static void |
1630 | ++pending_search_finish (PendingSearch *search, |
1631 | ++ GDBusMethodInvocation *invocation, |
1632 | ++ GVariant *result) |
1633 | ++{ |
1634 | ++ GsShellSearchProvider *self = search->provider; |
1635 | ++ |
1636 | ++ g_dbus_method_invocation_return_value (invocation, result); |
1637 | ++ |
1638 | ++ if (search == self->current_search) { |
1639 | ++ self->current_search = NULL; |
1640 | ++ } |
1641 | ++ |
1642 | ++ pending_search_free (search); |
1643 | ++ g_application_release (g_application_get_default ()); |
1644 | ++} |
1645 | ++ |
1646 | + static void |
1647 | + search_done_cb (GObject *source, |
1648 | + GAsyncResult *res, |
1649 | +@@ -87,10 +117,9 @@ search_done_cb (GObject *source, |
1650 | + |
1651 | + list = gs_plugin_loader_job_process_finish (self->plugin_loader, res, NULL); |
1652 | + if (list == NULL) { |
1653 | +- g_dbus_method_invocation_return_value (search->invocation, g_variant_new ("(as)", NULL)); |
1654 | +- pending_search_free (search); |
1655 | +- g_application_release (g_application_get_default ()); |
1656 | +- return; |
1657 | ++ pending_search_finish (search, search->invocation, |
1658 | ++ g_variant_new ("(as)", NULL)); |
1659 | ++ return; |
1660 | + } |
1661 | + |
1662 | + /* sort by kudos, as there is no ratings data by default */ |
1663 | +@@ -106,10 +135,8 @@ search_done_cb (GObject *source, |
1664 | + /* cache this in case we need the app in GetResultMetas */ |
1665 | + gs_app_list_add (self->search_results, app); |
1666 | + } |
1667 | +- g_dbus_method_invocation_return_value (search->invocation, g_variant_new ("(as)", &builder)); |
1668 | + |
1669 | +- pending_search_free (search); |
1670 | +- g_application_release (g_application_get_default ()); |
1671 | ++ pending_search_finish (search, search->invocation, g_variant_new ("(as)", &builder)); |
1672 | + } |
1673 | + |
1674 | + static gchar * |
1675 | +@@ -167,10 +194,7 @@ execute_search (GsShellSearchProvider *self, |
1676 | + |
1677 | + value = g_strjoinv (" ", terms); |
1678 | + |
1679 | +- if (self->cancellable != NULL) { |
1680 | +- g_cancellable_cancel (self->cancellable); |
1681 | +- g_clear_object (&self->cancellable); |
1682 | +- } |
1683 | ++ cancel_current_search (self); |
1684 | + |
1685 | + /* don't attempt searches for a single character */ |
1686 | + if (g_strv_length (terms) == 1 && |
1687 | +@@ -183,6 +207,7 @@ execute_search (GsShellSearchProvider *self, |
1688 | + pending_search->provider = self; |
1689 | + pending_search->invocation = g_object_ref (invocation); |
1690 | + |
1691 | ++ self->current_search = pending_search; |
1692 | + g_application_hold (g_application_get_default ()); |
1693 | + self->cancellable = g_cancellable_new (); |
1694 | + |
1695 | +@@ -334,6 +359,26 @@ handle_launch_search (GsShellSearchProvider2 *skeleton, |
1696 | + return TRUE; |
1697 | + } |
1698 | + |
1699 | ++static gboolean |
1700 | ++handle_xubuntu_cancel (GsShellSearchProvider2 *skeleton, |
1701 | ++ GDBusMethodInvocation *invocation, |
1702 | ++ gpointer user_data) |
1703 | ++{ |
1704 | ++ GsShellSearchProvider *self = GS_SHELL_SEARCH_PROVIDER (user_data); |
1705 | ++ |
1706 | ++ g_debug ("*** XUbuntuCancel called"); |
1707 | ++ |
1708 | ++ if (self->current_search != NULL && |
1709 | ++ g_strcmp0 (g_dbus_method_invocation_get_sender (self->current_search->invocation), |
1710 | ++ g_dbus_method_invocation_get_sender (invocation)) == 0) { |
1711 | ++ cancel_current_search (self); |
1712 | ++ } |
1713 | ++ |
1714 | ++ gs_shell_search_provider2_complete_xubuntu_cancel (skeleton, invocation); |
1715 | ++ |
1716 | ++ return TRUE; |
1717 | ++} |
1718 | ++ |
1719 | + gboolean |
1720 | + gs_shell_search_provider_register (GsShellSearchProvider *self, |
1721 | + GDBusConnection *connection, |
1722 | +@@ -355,10 +400,7 @@ search_provider_dispose (GObject *obj) |
1723 | + { |
1724 | + GsShellSearchProvider *self = GS_SHELL_SEARCH_PROVIDER (obj); |
1725 | + |
1726 | +- if (self->cancellable != NULL) { |
1727 | +- g_cancellable_cancel (self->cancellable); |
1728 | +- g_clear_object (&self->cancellable); |
1729 | +- } |
1730 | ++ cancel_current_search (self); |
1731 | + |
1732 | + if (self->metas_cache != NULL) { |
1733 | + g_hash_table_destroy (self->metas_cache); |
1734 | +@@ -393,6 +435,8 @@ gs_shell_search_provider_init (GsShellSearchProvider *self) |
1735 | + G_CALLBACK (handle_activate_result), self); |
1736 | + g_signal_connect (self->skeleton, "handle-launch-search", |
1737 | + G_CALLBACK (handle_launch_search), self); |
1738 | ++ g_signal_connect (self->skeleton, "handle-xubuntu-cancel", |
1739 | ++ G_CALLBACK (handle_xubuntu_cancel), self); |
1740 | + } |
1741 | + |
1742 | + static void |
1743 | +diff --git a/src/shell-search-provider-dbus-interfaces.xml b/src/shell-search-provider-dbus-interfaces.xml |
1744 | +index f6840e2c..4529c1e8 100644 |
1745 | +--- a/src/shell-search-provider-dbus-interfaces.xml |
1746 | ++++ b/src/shell-search-provider-dbus-interfaces.xml |
1747 | +@@ -40,5 +40,6 @@ |
1748 | + <arg type='as' name='Terms' direction='in' /> |
1749 | + <arg type='u' name='Timestamp' direction='in' /> |
1750 | + </method> |
1751 | ++ <method name = 'XUbuntuCancel' /> |
1752 | + </interface> |
1753 | + </node> |
1754 | +-- |
1755 | +2.17.1 |
1756 | + |
1757 | diff --git a/debian/patches/series b/debian/patches/series |
1758 | index fba8a0a..91ad116 100644 |
1759 | --- a/debian/patches/series |
1760 | +++ b/debian/patches/series |
1761 | @@ -1,9 +1,18 @@ |
1762 | # Patches from upstream |
1763 | +<<<<<<< debian/patches/series |
1764 | 0001-details-page-Add-support-for-verified-developers.patch |
1765 | 0002-snap-Set-verified-developer-flag.patch |
1766 | 0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
1767 | 0001-Use-correct-boolean-type-for-GsPluginJob-interactive.patch |
1768 | 0001-Revert-ef15f51d.patch |
1769 | +======= |
1770 | +0001-snap-Scale-embedded-snap-icons-to-64x64.patch |
1771 | +0001-snap-Only-load-icons-once.patch |
1772 | +0001-Fix-gs_app_set_state_recover-not-working-during-purc.patch |
1773 | +0001-snap-plugin-segfault.patch |
1774 | +0001-Set-reboot-notifications-as-urgent-to-avoid-them-tim.patch |
1775 | +0001-lib-Allow-opening-CAB-files-that-resolve-more-than-o.patch |
1776 | +>>>>>>> debian/patches/series |
1777 | |
1778 | # Patches from the ubuntu* branch |
1779 | 0001-Construct-the-Software-Sources-menu-item-dynamically.patch |
1780 | @@ -20,6 +29,7 @@ |
1781 | 0012-Don-t-use-colour-to-differentiate-between-free-and-p.patch |
1782 | 0013-overview-page-Rotate-featured-apps.patch |
1783 | 0014-Add-a-basic-permissions-system.patch |
1784 | +<<<<<<< debian/patches/series |
1785 | 0015-build-Translate-Ubuntu-s-.desktop-file.patch |
1786 | 0016-snap-Use-default-icon-if-none-provided.patch |
1787 | 0017-snap-Make-snaps-purchasable.patch |
1788 | @@ -30,3 +40,17 @@ |
1789 | 0022-snap-Use-wide-scope-when-searching.patch |
1790 | 0023-snap-Don-t-treat-auth-cancellation-as-an-error.patch |
1791 | 0024-shell-search-provider-implement-XUbuntuCancel.patch |
1792 | +======= |
1793 | +0015-Don-t-reject-unexpected-state-changes-external-event.patch |
1794 | +0016-build-Translate-Ubuntu-s-.desktop-file.patch |
1795 | +0017-snap-Use-default-icon-if-none-provided.patch |
1796 | +0018-snap-Make-snaps-purchasable.patch |
1797 | +0019-Disable-paid-snap-support-unless-env-variable-GNOME_.patch |
1798 | +0020-Show-verified-developers.patch |
1799 | +0021-snap-Use-wide-scope-when-searching.patch |
1800 | +0022-Delay-startup-of-GNOME-Software-to-allow-the-Shell-t.patch |
1801 | +0023-Revert-Revert-flatpak-Use-list-of-related-apps-for-i.patch |
1802 | +0024-flatpak-Check-if-a-related-app-is-installed-even-whe.patch |
1803 | +0025-flatpak-Include-related-refs-to-the-app-s-runtime-on.patch |
1804 | +0026-shell-search-provider-implement-XUbuntuCancel.patch |
1805 | +>>>>>>> debian/patches/series |