Compare commits

..

217 commits

Author SHA1 Message Date
Milan Crha
a10b3cf10f Update to 49.3 2026-01-12 17:23:11 +01:00
Milan Crha
095b81906e Add patch for bug #2416542 (Crash under gs_flatpak_refine_wildcard()) 2025-11-24 16:20:33 +01:00
Milan Crha
2a31982d3e Update to 49.2 2025-11-21 11:10:15 +01:00
Yanko Kaneti
93f854207d Add NEWS to docs 2025-10-10 10:04:05 +03:00
Milan Crha
3364ed6d8c Update to 49.1 2025-10-10 08:47:16 +02:00
Milan Crha
2c29600426 Resolves: #2395811 (Packages not found for "what-provides" searches) 2025-09-19 13:25:37 +02:00
Milan Crha
ac8dbc92e8 Update to 49.0 2025-09-12 10:01:34 +02:00
Milan Crha
90da5737b3 Resolves: #2392057 (dnf5-pugin: No update notifications shown) 2025-09-01 18:28:21 +02:00
Milan Crha
4a71393113 Update to 49.rc 2025-08-29 09:11:51 +02:00
Milan Crha
e95633c703 dnf5-plugin: Skip historical updates search when no last date is set 2025-08-26 19:03:20 +02:00
Milan Crha
446ce42aa8 dnf5-plugin: Auto-accept new RPM keys only when installed from repos
- dnf5-plugin: Download offline updates also by regular users
2025-08-25 12:05:46 +02:00
Milan Crha
eaee792f9f dnf5-plugin: Auto-accept new RPM keys 2025-08-13 18:32:50 +02:00
Milan Crha
e4f244856b dnf5-pugin: Use 'interactive' option, where supported
- dnf5-plugin: Add support to provide update history
2025-08-11 17:10:38 +02:00
Adam Williamson
7fb63f649d Move the user service file to the main package
In the 49-beta bump, this new file was inadvertently put into
the rpm-ostree subpackage, it doesn't make any sense for it to be
there.
2025-08-01 12:08:46 -07:00
Milan Crha
06b236a738 Update to 49.beta 2025-08-01 09:54:42 +02:00
Milan Crha
3a35195841 Resolves: #2377094 (Update dnf5 plugin with fixes for rhbz#2377094) 2025-07-25 11:34:05 +02:00
Fedora Release Engineering
47f4fc83f3 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-23 22:48:57 +00:00
Yaakov Selkowitz
9baa1e6cb6 Fix files list for RHEL builds
gnome-software-local-file-packagekit.desktop is installed only when one or
more of these options are enabled.
2025-07-04 08:57:08 -04:00
Milan Crha
cb80ea5cd1 dnf5-plugin: Update script to generate patch to not depend on exact commit
It'll mean less changes, and less work, to keep it up to date with
the repository changes.
2025-06-30 17:15:57 +02:00
Milan Crha
91ecbf1717 Add script to update the dnf5-plugin patch
To not have it saved on a single machine, easy to recover and run
by anyone.
2025-06-30 15:57:08 +02:00
Milan Crha
c924750e8a dnf5: Update the dnf5 plugin patch to match the latest upstream main branch 2025-06-30 15:42:41 +02:00
Milan Crha
6f0144b990 dnf5: Install 'gnome-software-local-file-packagekit.desktop' also for dnf5 plugin 2025-06-30 14:48:06 +02:00
Milan Crha
b4aa6186d3 Bump plugin API version 2025-06-27 09:50:36 +02:00
Milan Crha
9d8fd61e9a Update to 49.alpha 2025-06-27 09:10:50 +02:00
Milan Crha
bd322e2006 Switch %autosetup from gendiff to git backups
It's easier to build patches on top of the current code when multiple
files are involved.
2025-06-23 13:49:59 +02:00
Milan Crha
315c97814f Update to 48.2 2025-06-02 13:53:45 +02:00
Milan Crha
b57929aa0d Require dnf5daemon-server-polkit for the dnf5 plugin
It will be in pair with PackageKit, where the wheel users can install
packages without being asked for the credentials.
2025-06-02 13:51:22 +02:00
Milan Crha
c3fcc6a85e Switch from PackageKit to DNF5 plugin 2025-04-29 11:05:44 +02:00
Milan Crha
807d38c4d2 Update to 48.1 2025-04-11 08:37:11 +02:00
Milan Crha
909247b0df Update to 48.0 2025-03-14 09:47:52 +01:00
Milan Crha
f46e9e0cb8 Update to 48.rc 2025-03-03 09:38:54 +01:00
Milan Crha
539e242884 Update to 48.beta 2025-02-03 09:00:10 +01:00
Fedora Release Engineering
1f728b9f4b Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-16 22:56:23 +00:00
Milan Crha
0589468f3c Update to 48.alpha3 2025-01-14 18:05:07 +01:00
Milan Crha
27805dcecb Update to 48.alpha2 2025-01-07 08:57:23 +01:00
Milan Crha
6263c5e777 Resolves: #2272232 (Crash under gs_appstream_gather_merge_data()) 2024-12-09 10:57:46 +01:00
Yaakov Selkowitz
0dd97896b5 Rebuild for fwupd 2.0
The ELN build of fwupd 2.0, which included an ABI version change, was
delayed until now.
2024-12-05 16:04:16 -05:00
Milan Crha
79f3e3a0c8 Update to 47.2 2024-11-25 14:36:36 +01:00
Milan Crha
8bf3c4e720 Update to 47.1 2024-10-10 15:00:20 +02:00
Richard Hughes
8459c63d07
Rebuild against libfwupd.so.3 2024-10-04 16:47:40 +01:00
Milan Crha
287e223c6e Resolves: #2312882 (dkms: Fix callback user data in a reload() function) 2024-09-19 13:01:15 +02:00
Yaakov Selkowitz
c60a0c5691 Fix ELN build
With gnome-app-list split out from gnome-software, only the webapps-related
data is installed into swcatalog, and therefore those directories are not
created when webapps are disabled (as in RHEL).  While c10s does bundle a
list file and therefore creates these directories, it is too early to know
what this will look like for RHEL 11.
2024-09-17 14:20:06 -04:00
Milan Crha
399c9361bb Update to 47.0 2024-09-13 09:54:36 +02:00
Milan Crha
2c9dde7b62 Update to 47.rc 2024-08-30 11:32:32 +02:00
Milan Crha
1016f497ea Build with DKMS/akmods plugin in Fedora 2024-08-02 09:40:32 +02:00
Milan Crha
5897c8b574 Update to 47.beta 2024-08-02 09:34:24 +02:00
Fedora Release Engineering
9d3ce3773b Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-18 03:12:21 +00:00
Milan Crha
7cca703b20 Update to 47.alpha 2024-06-28 12:12:25 +02:00
Milan Crha
2f2f30d236 Build fedora-langpacks subpackage only in Fedora
The subpackage contains a plugin, which disables itself when the system
is not Fedora, thus is does not need to be distributed elsewhere.
2024-06-03 10:27:39 +02:00
Milan Crha
4f2a027a25 Update to 46.2 2024-05-24 08:30:36 +02:00
Hristo Marinov
4e0c8cfc83 OSTree not on i686 for Fedora 2024-05-08 19:01:10 +03:00
Milan Crha
869715beb2 Update to 46.1 2024-04-25 10:28:27 +02:00
Adam Williamson
e68edf8058 Backport MR #1949 to fix upgrading 2024-04-12 10:19:53 -07:00
Milan Crha
ea6727cab2 Update URL to point to the new app page 2024-03-27 09:39:17 +01:00
Milan Crha
9848abdaf8 Update to 46.0 2024-03-18 10:03:43 +01:00
Milan Crha
9452c38643 Update to 46.rc 2024-03-01 11:27:02 +01:00
Milan Crha
e1a74cef52 Update to 46.beta 2024-02-09 10:05:49 +01:00
Milan Crha
0b4b0060f8 Resolves: #2260294 (Split fedora-langpacks plugin into a subpackage) 2024-01-26 11:02:25 +01:00
Fedora Release Engineering
881bbc7f12 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-24 15:41:25 +00:00
Fedora Release Engineering
2152c30083 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-19 23:07:23 +00:00
Milan Crha
ef76ba9941 Update to 46.alpha 2024-01-05 10:28:23 +01:00
Troy Dawson
3140f37d2d ostree and flatpak not on i686 for RHEL 10
Signed-off-by: Troy Dawson <tdawson@redhat.com>
2023-12-19 09:38:23 -08:00
Milan Crha
a3f0848b35 Update to 45.2 2023-12-01 10:20:36 +01:00
Neal Gompa
34ee6fc989 Fix appstream_version macro for prerelease appstream 1.0 package 2023-11-07 13:06:54 -05:00
Milan Crha
fa61d9aee4 Require appstream version 1.0.0 2023-11-07 09:10:58 +01:00
Milan Crha
5ed67eade6 Add patch to build with appstream 1.0 2023-11-07 08:25:58 +01:00
Milan Crha
1b93572ab6 Update to 45.1 2023-10-20 08:48:21 +02:00
Milan Crha
aa509767b4 Update to 45.0 2023-09-15 09:41:21 +02:00
Milan Crha
10938fed79 Update to 45.rc 2023-09-01 09:40:08 +02:00
Milan Crha
b660d80257 Remove reference to a dropped plugin (it's builtin now) 2023-07-31 09:44:56 +02:00
Milan Crha
cc29af56c4 Update to 45.beta 2023-07-31 07:21:50 +02:00
Fedora Release Engineering
ee6f7c739f Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-19 23:48:37 +00:00
Milan Crha
5e095d670f Update to 45.alpha 2023-06-30 11:35:00 +02:00
Tomas Popela
91d71073bb Fix a changelog typo
Spotten by mcrha.
2023-06-22 19:13:10 +02:00
Tomas Popela
6c9157f906 Disable parental control (through malcontent) and rpm-ostree support in RHEL
Also move the webapp conditional to a newer syntax to be consistent.
2023-06-22 16:30:53 +02:00
Milan Crha
d32b18a85c Update to 44.2 2023-05-26 07:55:44 +02:00
Milan Crha
2ea292e8f3 Rebuild for RPM 2023-05-19 12:57:20 +02:00
Milan Crha
487ab393e1 Update to 44.1 2023-04-21 08:55:05 +02:00
Milan Crha
248c8dbdc8 Added 'flatpak:fedora-testing' into packaging-format-preference 2023-03-27 08:46:48 +02:00
Yaakov Selkowitz
ba20db05e7 Fix libsoup runtime dependency
This was switched to libsoup3 in 44~alpha but the runtime dependency was
not switched to match.  With the switch, there is no particular version
constraint, so just rely on the dynamic link dependency.
2023-03-26 12:33:12 -04:00
Milan Crha
5babfff9d7 Resolves: #2181367 (Prefer Fedora Flatpaks before RPM before other sources for apps) 2023-03-24 07:17:17 +01:00
Milan Crha
1293c4db15 Update to 44.0 2023-03-17 07:44:25 +01:00
Milan Crha
cb6e437195 Update to 44.rc 2023-03-03 13:59:50 +01:00
Adam Williamson
6e1e4a25c9 Backport MR #1635 to fix update notifications 2023-02-23 13:19:04 -08:00
Milan Crha
e710d3931e Update to 44.beta 2023-02-14 08:09:00 +01:00
Michael Catanzaro
203bf248ec Switch to libsoup 3 2023-02-09 11:03:29 -06:00
Fedora Release Engineering
db9647bdbd Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-19 05:39:31 +00:00
Milan Crha
de5f7834c2 Update to 44.alpha 2023-01-09 09:52:04 +01:00
Milan Crha
b692d2f960 Update to 43.2 2022-12-02 12:56:50 +01:00
Milan Crha
082bd5162c Update License tag to SPDX 2022-11-10 11:13:20 +01:00
Milan Crha
7cb12d79d3 Also skip gnome-pwa-list-foss.xml when building without WebApps 2022-11-08 18:41:35 +01:00
Milan Crha
a6313db9a1 Disable WebApps for RHEL builds 2022-11-08 17:09:16 +01:00
Milan Crha
aca6555662 Update to 43.1 2022-10-24 07:53:55 +02:00
Milan Crha
1cc4989f98 Resolves: #2132292 (rpm-ostree plugin refuses to update) 2022-10-05 18:52:53 +02:00
Kalev Lember
89923f63dc Rebuild to fix sysprof-capture symbols leaking into libraries consuming it 2022-09-27 18:54:23 +02:00
Milan Crha
ddac1027ad Update to 43.0 2022-09-16 08:39:15 +02:00
Milan Crha
d1659f7e11 Resolves: #2124869 (Cannot install RPM package file) 2022-09-13 09:11:57 +02:00
Milan Crha
1717723249 Update to 43.rc 2022-09-02 10:51:15 +02:00
Milan Crha
f744223b09 Add rpminspect.yaml (settings for the RUNPATH test) 2022-08-18 07:37:04 +02:00
Milan Crha
6a61ae4b2d Resolves: #2119089 (No enough apps to show for the "Editor's Choice" section) 2022-08-17 15:52:58 +02:00
Milan Crha
a0175cb9f4 Add patch for install-queue (RH bug #2118265) 2022-08-15 13:37:14 +02:00
Milan Crha
c73577f732 Update to 43.beta 2022-08-05 13:54:15 +02:00
Fedora Release Engineering
9ef98a7975 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-21 07:03:42 +00:00
Adam Williamson
9786c4ea7f Backport MR #1401 to fix issue #1816 and fedora-workstation #107 2022-07-07 09:39:41 -07:00
Milan Crha
4afe518acc Update to 43.alpha 2022-07-01 12:41:08 +02:00
Richard Hughes
5d7e2fdfe9 Add patch to make fwupd user requests work 2022-06-17 13:08:37 +01:00
David King
597c207c2d Improve directory ownership 2022-06-16 14:12:44 +01:00
David King
d2c0a6431e Use pkgconfig for BuildRequires
https://fedoraproject.org/wiki/Packaging:PkgConfigBuildRequires
2022-06-16 14:12:44 +01:00
David King
1e2c0b7474 Filter private libraries from Provides 2022-06-16 11:18:32 +01:00
Milan Crha
5575960754 Add patch for crash under gs_flatpak_refine_app_unlocked() 2022-06-13 14:43:28 +02:00
Milan Crha
b0b459586b Update to 42.2; Add patch to correct order of the setup of the GsShell 2022-05-30 17:51:05 +02:00
Milan Crha
82d21baa53 Update to 42.1 2022-04-27 09:09:39 +02:00
Milan Crha
0db1b574e2 Update to 42.0 2022-03-18 10:13:22 +01:00
Milan Crha
154dca4c08 Add upstream patches for gs-download-utils (i#1677 and i#1679) 2022-03-10 17:34:44 +01:00
Milan Crha
f3f073c56f Update to 42.rc 2022-03-07 08:15:08 +01:00
Milan Crha
913366d7d6 Resolves: #2056082 (Enable PackageKit autoremove option) 2022-02-21 10:30:51 +01:00
Milan Crha
422e17de77 Add a temporary workaround for gtk_widget_measure error flood on GsAppRow 2022-02-16 17:49:57 +01:00
Milan Crha
1fac831a31 Resolves: #2054939 (Crash on a PackageKit app install) 2022-02-16 17:41:29 +01:00
Milan Crha
f6af9a7826 Correct files list for popular plugin removal 2022-02-11 12:28:17 +01:00
Milan Crha
142b342f07 Update to 42.beta 2022-02-11 11:39:45 +01:00
Fedora Release Engineering
9365ecb05c - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-20 06:45:38 +00:00
Milan Crha
81a6f050fb Update to 42.alpha 2022-01-07 11:06:27 +01:00
Milan Crha
3980718036 Update to 41.2 2021-12-03 09:30:50 +01:00
Milan Crha
856444f98a Update to 41.1 2021-10-29 10:09:12 +02:00
Milan Crha
77240ed208 Resolves: #2012863 (gs-installed-page: Change section on application state change) 2021-10-19 07:58:46 +02:00
Milan Crha
5b411a73e7 Add patch to mark compulsory only repos, not apps from it 2021-10-11 09:20:40 +02:00
Milan Crha
53b2166dfb Resolves: #2011176, #2010660, #2010353 2021-10-08 07:37:33 +02:00
Milan Crha
f47313a4ef Resolves: #2010740 (Refresh on repository setup change) 2021-10-08 07:36:49 +02:00
Milan Crha
a63a7bde16 Resolves: #2009063 (Correct update notifications) 2021-10-08 07:36:37 +02:00
Milan Crha
0537bfe484 Update to 41.0 2021-09-20 09:51:11 +02:00
Milan Crha
95dd5f06f6 Resolves: #2003365 (packagekit: Ensure PkClient::interactive flag being set) 2021-09-13 15:13:00 +02:00
Milan Crha
4f4ac53d68 Update to 41.rc 2021-09-08 09:10:47 +02:00
Milan Crha
4ba65e69d0 Resolves: #1995817 (gs-updates-section: Check also dependencies' download size) 2021-09-01 21:10:08 +02:00
Kalev Lember
94b79ff886 Enable parental controls support
https://pagure.io/fedora-workstation/issue/186
2021-08-24 19:18:00 +02:00
Milan Crha
6818c689ad Update to 41.beta 2021-08-13 18:20:57 +02:00
Fedora Release Engineering
2d741fb23b - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-22 02:22:23 +00:00
Milan Crha
c71ea6160d Update to 41.alpha 2021-07-21 14:16:09 +02:00
Milan Crha
ac5db51322 Add rpm-ostree patch to hide packages from the search results; Add patch to implement what-provides search in the Flatpak plugin 2021-07-12 18:32:34 +02:00
Milan Crha
ad5b2dba08 Update to 40.3 2021-07-12 11:52:52 +02:00
Milan Crha
0f8fa87137 Add patch to automatically install application updates (i#1248) 2021-06-23 09:16:39 +02:00
Milan Crha
b59e1f44fc Update to 40.2 2021-06-04 10:32:18 +02:00
Milan Crha
752ac96606 Add patch for crash under gs_details_page_refresh_all() (i#1227) 2021-05-03 12:48:24 +02:00
Milan Crha
582b519dd9 Update to 40.1 2021-05-03 09:38:10 +02:00
Kalev Lember
2db091cafb Rebuild to fix sysprof-capture symbols leaking into libraries consuming it 2021-03-26 11:41:06 +01:00
Kalev Lember
7536611167 Update to 40.0 2021-03-22 13:49:58 +01:00
Adam Williamson
dbac9fa7a3 Backport a couple of bug fixes from upstream (icon display, crash bug) 2021-03-18 18:25:09 -07:00
Kalev Lember
c68eece936 Update to 40.rc 2021-03-16 00:39:17 +01:00
Adam Williamson
7a1919c5a5 Backport MR #643 to fix update notifications on first run (#1930401) 2021-03-10 10:08:16 -08:00
Kalev Lember
11b7e38d32 BR sysprof-capture-devel rather than sysprof-devel 2021-02-24 11:36:21 +01:00
Kalev Lember
7bc2a78ecd Update to 40.beta 2021-02-16 22:17:05 +01:00
Richard Hughes
a7e91182f3 New upstream version 2021-02-08 10:09:44 +00:00
Fedora Release Engineering
72021ac9ac - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-26 08:46:52 +00:00
Kalev Lember
d856322844 Revert an optimization that broke packagekit updates 2020-09-14 12:13:20 +02:00
Kalev Lember
8653941a77 Update to 3.38.0 2020-09-11 14:19:00 +02:00
Kalev Lember
071d487285 Update to 3.37.92 2020-09-01 20:40:49 +02:00
Richard Hughes
5ddfdf962a Rebuild for the libxmlb API bump 2020-08-18 16:02:01 +01:00
Fedora Release Engineering
0b876537d7 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-08-01 02:20:38 +00:00
Fedora Release Engineering
a05211def8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-07-27 20:46:52 +00:00
Richard Hughes
63583454c0 Update to 3.36.1 2020-05-22 17:00:53 +01:00
Kalev Lember
122d8ac603 Backport various rpm-ostree backend fixes 2020-05-12 20:28:27 +02:00
Kalev Lember
fb614f17e4 Update to 3.36.0 2020-03-11 13:58:58 +01:00
Kalev Lember
3ec52c4ecb Update to 3.35.92 2020-03-04 15:24:28 +01:00
Richard Hughes
d14944ca6d Backport a patch to fix a crash when looking at the application details 2020-02-21 16:16:26 +00:00
Kalev Lember
04a7f7cda8 Update source URL 2020-02-19 21:08:32 +01:00
Kalev Lember
dc344937d4 Update minimum required dep versions 2020-02-19 21:07:59 +01:00
Richard Hughes
e07c826282 Actually include souces file 2020-02-19 20:03:48 +00:00
Richard Hughes
a89ffcca98 Update to 3.35.91 2020-02-19 20:01:03 +00:00
Fedora Release Engineering
e6db3d491a - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2020-01-28 22:56:55 +00:00
Richard Hughes
de96612cc3 Update to 3.35.2 2019-11-25 09:41:07 +00:00
Kalev Lember
9704cc1ded Backport patches to fix a crash in gs_flatpak_get_installation
https://bugzilla.redhat.com/show_bug.cgi?id=1762689
2019-10-18 14:00:51 +02:00
Kalev Lember
3df71875f0 Update renamed appstream ids for GNOME 3.34 2019-10-14 20:01:49 +02:00
Richard Hughes
dd8f13536a Simpler patch 2019-10-11 19:39:48 +01:00
Richard Hughes
a624dec0af Backport a better patch 2019-10-11 15:47:42 +01:00
Richard Hughes
bdcbfaab1e Backport a patch to correct the applications shown in the installed list 2019-10-10 08:50:05 +01:00
Kalev Lember
70221d2c87 Update to 3.34.1 2019-10-07 18:56:23 +02:00
Kalev Lember
b13cd41159 Drop unused libsecret-devel BR 2019-09-25 13:05:45 +02:00
Kalev Lember
58dfa1a7bd Remove a no-longer-needed requires filter 2019-09-25 13:04:03 +02:00
Kalev Lember
6177408c54 Fix third party repo enabling not working
https://bugzilla.redhat.com/show_bug.cgi?id=1749566
2019-09-25 10:26:46 +02:00
Kalev Lember
a37beadf56 Update to 3.34.0 2019-09-09 15:47:13 +02:00
Fedora Release Engineering
3da89f7ffd - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-07-25 04:22:00 +00:00
Kalev Lember
f8eeaa6a47 Bump obsoletes version
Make sure the obsoletes keep working when we bump gnome-software to
newer 3.32.x versions on the F30 branch.
2019-07-11 19:31:10 +03:00
Kalev Lember
e7026ff0ba Update to 3.32.4 2019-07-11 19:24:37 +03:00
Richard Hughes
ef1746da8c Disable the snap plugin 2019-07-11 12:51:42 +01:00
Kalev Lember
21618fefff Rebuild for accidental libflatpak ABI break 2019-06-13 11:12:04 +02:00
Igor Gnatenko
7f6f7fbad2
Rebuild for RPM 4.15
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-11 00:13:19 +02:00
Igor Gnatenko
8dac7921d1
Rebuild for RPM 4.15
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2019-06-10 17:42:01 +02:00
Kalev Lember
dedd08e22a Update to 3.32.3 2019-05-24 22:10:36 +02:00
Kalev Lember
0b40a402d7 Update to 3.32.2 2019-05-01 12:38:20 +02:00
Kalev Lember
30f2eba2c3 Update a patch to final upstream version 2019-05-03 22:48:16 +02:00
Kalev Lember
2eca76c09d Backport a number of rpm-ostree fixes 2019-04-30 17:12:50 +02:00
Adam Williamson
f4969a0858 Rebuild with Meson fix for #1699099 2019-04-16 11:11:56 -07:00
Kalev Lember
4c58c945de Set minimum required libxmlb version 2019-04-16 01:12:04 +02:00
Kalev Lember
09a0916529 Update to 3.32.1 2019-04-15 23:50:34 +02:00
Neal Gompa
44473e8bec Require snapd instead of the obsolete snapd-login-service for snap subpackage 2019-04-05 08:29:41 -04:00
Kalev Lember
7a82a2d0de Switch to system libdnf
Now that rpm-ostree is using libdnf master again, we can (at least for
now) drop the libdnf bundling.
2019-04-03 17:13:38 +02:00
Kalev Lember
239841f3cb Rebuild for new rpm-ostree 2019-03-29 16:08:54 +01:00
Kalev Lember
70152ff330 Add nm-connection-editor.desktop to Utilities folder
https://bugzilla.redhat.com/show_bug.cgi?id=1686851
2019-03-15 16:27:41 +01:00
Kalev Lember
d542c7fe6a Backport one more patch to add shadows to icons in app tiles as well 2019-03-13 13:25:32 +01:00
Kalev Lember
0e66034692 Backport a patch to add shadows to app icons 2019-03-12 19:45:23 +01:00
Kalev Lember
65579d4128 Update to 3.32.0 2019-03-11 23:10:02 +01:00
Kalev Lember
a5e4472f28 Update to 3.31.92 2019-03-05 23:18:44 +01:00
Kalev Lember
c4a5cacedd Change PackageKit requires to recommends
This allows Silverblue composes to exclude PackageKit (and install the
rpm-ostree backend instead), while still keeping it installed by default
for all other cases.
2019-02-28 12:41:49 +01:00
Kalev Lember
74a098d6fb Remove unneeded dpkg plugin 2019-02-27 13:41:49 +01:00
Kalev Lember
21f2298fa4 Split rpm-ostree backend to its own subpackage 2019-02-25 10:34:35 +01:00
Kalev Lember
4e56a433cd Add "anaconda" repo to official repos list
https://bugzilla.redhat.com/show_bug.cgi?id=1679693
2019-02-24 23:49:51 +01:00
Kalev Lember
3f1f74f014 Bundle libdnf to match the exact version that rpm-ostree ships 2019-02-24 23:49:51 +01:00
Kalev Lember
cce05cbd4a Update to 3.31.90 2019-02-24 23:49:51 +01:00
Fedora Release Engineering
ed5b9925bf - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2019-01-31 23:20:16 +00:00
Kalev Lember
b12b1364c8 Drop obsolete meson options 2019-01-25 14:56:58 +01:00
Kalev Lember
72f4666747 Update to 3.31.2 2019-01-16 23:10:19 +01:00
Kalev Lember
7d42b3dbe8 Fix offline update notifications to show up
https://bugzilla.redhat.com/show_bug.cgi?id=1659231
2018-12-14 09:22:36 +01:00
Kalev Lember
fca44481b8 Update to 3.31.1 2018-10-09 14:42:43 +02:00
Kalev Lember
b2270c9065 Update to 3.30.2 2018-10-05 17:06:29 +02:00
Kalev Lember
2be554e6bd Add modular repos to official repos list 2018-09-26 16:33:59 +02:00
Kalev Lember
b5b879acf4 Update to 3.30.1 2018-09-25 12:26:17 +02:00
Kalev Lember
733fee2296 Update to 3.30.0 2018-09-06 15:13:34 +02:00
Richard Hughes
e122f806ec Update to 3.29.92 2018-08-28 15:15:28 +01:00
12 changed files with 7742 additions and 1590 deletions

104
.gitignore vendored
View file

@ -1,102 +1,2 @@
/gnome-software-0.1.tar.xz
/gnome-software-3.9.1.tar.xz
/gnome-software-3.9.2.tar.xz
/gnome-software-3.9.3.tar.xz
/fedora-20.xml.gz
/fedora-20-icons.tar.gz
/gnome-software-3.10.0.tar.xz
/gnome-software-3.11.1.tar.xz
/fedora-20-codecs.xml
/web-apps.xml
/gnome-software-3.11.2.tar.xz
/gnome-software-3.11.3.tar.xz
/gnome-software-3.11.4.tar.xz
/fedora-rawhide-icons.tar.gz
/fedora-rawhide.xml.gz
/gnome-software-3.11.5.tar.xz
/gnome-software-3.11.90.tar.xz
/gnome-software-3.11.91.tar.xz
/gnome-software-3.11.92.tar.xz
/gnome-software-3.12.0.tar.xz
/gnome-software-3.12.1.tar.xz
/gnome-software-3.13.1.tar.xz
/fedora-21-icons.tar.gz
/fedora-21.xml.gz
/gnome-software-3.13.2.tar.xz
/gnome-software-3.13.3-7491627.tar.xz
/gnome-software-3.13.3.tar.xz
/gnome-software-3.13.4.tar.xz
/gnome-software-3.13.5-5c89189.tar.xz
/gnome-software-3.13.90.tar.xz
/gnome-software-3.13.91.tar.xz
/gnome-software-3.13.92.tar.xz
/gnome-software-3.14.0.tar.xz
/gnome-software-3.14.1.tar.xz
/gnome-software-3.14.2.tar.xz
/gnome-software-3.15.2.tar.xz
/gnome-software-3.15.4.tar.xz
/gnome-software-3.15.90.tar.xz
/gnome-software-3.15.91.tar.xz
/gnome-software-3.15.92.tar.xz
/gnome-software-3.16.0.tar.xz
/gnome-software-3.16.1.tar.xz
/gnome-software-3.16.2.tar.xz
/gnome-software-3.17.1.tar.xz
/gnome-software-3.17.2.tar.xz
/gnome-software-3.17.3.tar.xz
/gnome-software-3.17.90.tar.xz
/gnome-software-3.17.91.tar.xz
/gnome-software-3.17.92.tar.xz
/gnome-software-3.18.0.tar.xz
/gnome-software-3.18.1.tar.xz
/gnome-software-3.18.2.tar.xz
/gnome-software-3.18.3.tar.xz
/gnome-software-3.19.4.tar.xz
/gnome-software-3.19.90.tar.xz
/gnome-software-3.19.91.tar.xz
/gnome-software-3.19.92.tar.xz
/gnome-software-3.20.0.tar.xz
/gnome-software-3.20.1.tar.xz
/gnome-software-3.20.2.tar.xz
/gnome-software-3.21.1.tar.xz
/gnome-software-3.21.2.tar.xz
/gnome-software-3.21.4.tar.xz
/gnome-software-3.21.90.tar.xz
/gnome-software-3.21.91.tar.xz
/gnome-software-3.21.92.tar.xz
/gnome-software-3.22.0.tar.xz
/gnome-software-3.22.1.tar.xz
/gnome-software-3.22.2.tar.xz
/gnome-software-3.23.2.tar.xz
/gnome-software-3.23.3.tar.xz
/gnome-software-3.23.90.tar.xz
/gnome-software-3.23.91.tar.xz
/gnome-software-3.23.92.tar.xz
/gnome-software-3.24.0.tar.xz
/gnome-software-3.24.1.tar.xz
/gnome-software-3.24.2.tar.xz
/gnome-software-3.24.3.tar.xz
/gnome-software-3.25.3.tar.xz
/gnome-software-3.25.4.tar.xz
/gnome-software-3.25.90.tar.xz
/gnome-software-3.25.91.tar.xz
/gnome-software-3.26.0.tar.xz
/gnome-software-3.26.1.tar.xz
/gnome-software-3.26.2.tar.xz
/gnome-software-3.27.2.tar.xz
/gnome-software-3.27.3.tar.xz
/gnome-software-3.27.4.tar.xz
/gnome-software-3.27.90.tar.xz
/gnome-software-3.27.92.tar.xz
/gnome-software-3.28.0.tar.xz
/gnome-software-3.28.1.tar.xz
/gnome-software-3.29.1.tar.xz
/gnome-software-3.29.92.tar.xz
/gnome-software-3.30.0.tar.xz
/gnome-software-3.30.1.tar.xz
/gnome-software-3.30.2.tar.xz
/gnome-software-3.30.3.tar.xz
/gnome-software-3.30.5.tar.xz
/gnome-software-3.30.6.tar.xz
/f30.png
/f31.png
/gnome-software-*.tar.xz
/gnome-software-*-build

View file

@ -1,145 +0,0 @@
From f91c54a70860ed12270bbafa121acae36f29badb Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Tue, 18 Dec 2018 02:44:31 +0100
Subject: [PATCH] Lower AsStore new API version checks for Fedora
We have new the AsStore thread safety patches along with new thread safe
API backported to libappstream-glib-0.7.14-3.fc29.
---
plugins/core/gs-appstream.c | 12 ++++++------
plugins/core/gs-plugin-appstream.c | 12 ++++++------
plugins/flatpak/gs-flatpak.c | 2 +-
3 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/plugins/core/gs-appstream.c b/plugins/core/gs-appstream.c
index b7bccd19a..7b606fe0d 100644
--- a/plugins/core/gs-appstream.c
+++ b/plugins/core/gs-appstream.c
@@ -860,7 +860,7 @@ gs_appstream_store_search (GsPlugin *plugin,
gboolean ret = TRUE;
g_autoptr(GPtrArray) array = NULL;
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
@@ -937,7 +937,7 @@ gs_appstream_store_add_category_apps (GsPlugin *plugin,
g_autoptr(GPtrArray) array = NULL;
/* just look at each app in turn */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
@@ -985,7 +985,7 @@ gs_appstream_store_add_categories (GsPlugin *plugin,
g_autoptr(GPtrArray) array = NULL;
/* find out how many packages are in each category */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
@@ -1013,7 +1013,7 @@ gs_appstream_add_popular (GsPlugin *plugin,
{
g_autoptr(GPtrArray) array = NULL;
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
@@ -1059,7 +1059,7 @@ gs_appstream_add_recent (GsPlugin *plugin,
{
g_autoptr(GPtrArray) array = NULL;
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
@@ -1088,7 +1088,7 @@ gs_appstream_add_featured (GsPlugin *plugin,
{
g_autoptr(GPtrArray) array = NULL;
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (store);
#else
array = g_ptr_array_ref (as_store_get_apps (store));
diff --git a/plugins/core/gs-plugin-appstream.c b/plugins/core/gs-plugin-appstream.c
index 77d004162..ce0ca9bda 100644
--- a/plugins/core/gs-plugin-appstream.c
+++ b/plugins/core/gs-plugin-appstream.c
@@ -56,7 +56,7 @@ gs_plugin_appstream_create_app_hash (AsStore *store)
hash = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, (GDestroyNotify) g_object_unref);
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
apps = as_store_dup_apps (store);
#else
apps = g_ptr_array_ref (as_store_get_apps (store));
@@ -290,7 +290,7 @@ gs_plugin_setup (GsPlugin *plugin, GCancellable *cancellable, GError **error)
return FALSE;
}
}
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
items = as_store_dup_apps (priv->store);
#else
items = g_ptr_array_ref (as_store_get_apps (priv->store));
@@ -391,7 +391,7 @@ gs_plugin_refine_from_id (GsPlugin *plugin,
g_autoptr(GPtrArray) apps_merge = NULL;
g_debug ("no app with ID %s found in system appstream", unique_id);
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
apps = as_store_dup_apps (priv->store);
#else
apps = g_ptr_array_ref (as_store_get_apps (priv->store));
@@ -405,7 +405,7 @@ gs_plugin_refine_from_id (GsPlugin *plugin,
}
/* fall back to trying to get a merge app */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
apps_merge = as_store_dup_apps_by_id_merge (priv->store, gs_app_get_id (app));
for (guint i = 0; i < apps_merge->len; i++) {
item = g_ptr_array_index (apps_merge, i);
@@ -472,7 +472,7 @@ gs_plugin_add_distro_upgrades (GsPlugin *plugin,
g_autoptr(GPtrArray) array = NULL;
/* find any upgrades */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (priv->store);
#else
array = g_ptr_array_ref (as_store_get_apps (priv->store));
@@ -620,7 +620,7 @@ gs_plugin_add_installed (GsPlugin *plugin,
g_autoptr(GPtrArray) array = NULL;
/* search categories for the search term */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
array = as_store_dup_apps (priv->store);
#else
array = g_ptr_array_ref (as_store_get_apps (priv->store));
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index b835d843c..921fd12e9 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -328,7 +328,7 @@ gs_flatpak_add_apps_from_xremote (GsFlatpak *self,
}
/* override the *AppStream* origin */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
apps = as_store_dup_apps (store);
#else
apps = g_ptr_array_ref (as_store_get_apps (store));
--
2.19.1

View file

@ -1,50 +0,0 @@
From 96f516a4e01b00094919c6c365d804a109b5875f Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Wed, 24 Oct 2018 15:00:59 +0200
Subject: [PATCH] Lower as_utils_vercmp_full version check for Fedora
We have new as_utils_vercmp_full API backported to
libappstream-glib-0.7.14-2.fc29.
---
lib/gs-plugin-loader.c | 2 +-
src/gs-update-dialog.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/gs-plugin-loader.c b/lib/gs-plugin-loader.c
index 93e394906..b84a0ba65 100644
--- a/lib/gs-plugin-loader.c
+++ b/lib/gs-plugin-loader.c
@@ -1423,7 +1423,7 @@ gs_plugin_loader_app_sort_match_value_cb (GsApp *app1, GsApp *app2, gpointer use
static gint
gs_plugin_loader_app_sort_version_cb (GsApp *app1, GsApp *app2, gpointer user_data)
{
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
return as_utils_vercmp_full (gs_app_get_version (app1),
gs_app_get_version (app2),
AS_VERSION_COMPARE_FLAG_NONE);
diff --git a/src/gs-update-dialog.c b/src/gs-update-dialog.c
index b4c1b1187..e92cd5b87 100644
--- a/src/gs-update-dialog.c
+++ b/src/gs-update-dialog.c
@@ -374,7 +374,7 @@ is_downgrade (const gchar *evr1,
* part of the semantic version */
/* check version */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
rc = as_utils_vercmp_full (version1, version2,
AS_VERSION_COMPARE_FLAG_NONE);
#else
@@ -384,7 +384,7 @@ is_downgrade (const gchar *evr1,
return rc > 0;
/* check release */
-#if AS_CHECK_VERSION(0,7,15)
+#if AS_CHECK_VERSION(0,7,14)
rc = as_utils_vercmp_full (version1, version2,
AS_VERSION_COMPARE_FLAG_NONE);
#else
--
2.19.1

6770
0001-dnf5-plugin.patch Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,123 +0,0 @@
From ece9a68becd6441d238f23acd2a1b156243fa7b6 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Tue, 7 May 2019 08:22:53 +0200
Subject: [PATCH] packagekit: Fix progress marshalling for upgrade_download and
refresh
The new GsPackageKitHelper class introduced in mega-commit 37103e6 only
handled progress marshalling when downloading a list of packages, but
not when the PK transaction is one big monolithic operation that only
has a single GsApp associated, such as when downloading all of the
distro upgrades, or when refreshing the cache.
This commit adds a way to explicitly add a GsApp to GsPackageKitHelper
to use for marshalling progress in these cases.
---
plugins/packagekit/gs-packagekit-helper.c | 13 ++++++++++++-
plugins/packagekit/gs-packagekit-helper.h | 3 +++
plugins/packagekit/gs-plugin-packagekit-refresh.c | 2 +-
plugins/packagekit/gs-plugin-packagekit-upgrade.c | 2 +-
4 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/plugins/packagekit/gs-packagekit-helper.c b/plugins/packagekit/gs-packagekit-helper.c
index a292e0068..39c026c3e 100644
--- a/plugins/packagekit/gs-packagekit-helper.c
+++ b/plugins/packagekit/gs-packagekit-helper.c
@@ -1,6 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2016-2018 Richard Hughes <richard@hughsie.com>
+ * Copyright (C) 2019 Kalev Lember <klember@redhat.com>
*
* Licensed under the GNU General Public License Version 2
*
@@ -29,6 +30,7 @@
struct _GsPackagekitHelper {
GObject parent_instance;
GHashTable *apps;
+ GsApp *progress_app;
GsPlugin *plugin;
};
@@ -43,7 +45,9 @@ gs_packagekit_helper_cb (PkProgress *progress, PkProgressType type, gpointer use
GsApp *app = NULL;
/* optional */
- if (package_id != NULL)
+ if (self->progress_app != NULL)
+ app = self->progress_app;
+ else if (package_id != NULL)
app = gs_packagekit_helper_get_app_by_id (self, package_id);
if (type == PK_PROGRESS_TYPE_STATUS) {
@@ -79,6 +83,12 @@ gs_packagekit_helper_add_app (GsPackagekitHelper *self, GsApp *app)
}
}
+void
+gs_packagekit_helper_set_progress_app (GsPackagekitHelper *self, GsApp *progress_app)
+{
+ g_set_object (&self->progress_app, progress_app);
+}
+
GsPlugin *
gs_packagekit_helper_get_plugin (GsPackagekitHelper *self)
{
@@ -104,6 +114,7 @@ gs_packagekit_helper_finalize (GObject *object)
self = GS_PACKAGEKIT_HELPER (object);
g_object_unref (self->plugin);
+ g_clear_object (&self->progress_app);
g_hash_table_unref (self->apps);
G_OBJECT_CLASS (gs_packagekit_helper_parent_class)->finalize (object);
diff --git a/plugins/packagekit/gs-packagekit-helper.h b/plugins/packagekit/gs-packagekit-helper.h
index 3b5263c0a..b18b8229b 100644
--- a/plugins/packagekit/gs-packagekit-helper.h
+++ b/plugins/packagekit/gs-packagekit-helper.h
@@ -1,6 +1,7 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
*
* Copyright (C) 2016-2018 Richard Hughes <richard@hughsie.com>
+ * Copyright (C) 2019 Kalev Lember <klember@redhat.com>
*
* Licensed under the GNU General Public License Version 2
*
@@ -36,6 +37,8 @@ GsPackagekitHelper *gs_packagekit_helper_new (GsPlugin *plugin);
GsPlugin *gs_packagekit_helper_get_plugin (GsPackagekitHelper *self);
void gs_packagekit_helper_add_app (GsPackagekitHelper *self,
GsApp *app);
+void gs_packagekit_helper_set_progress_app (GsPackagekitHelper *self,
+ GsApp *progress_app);
GsApp *gs_packagekit_helper_get_app_by_id (GsPackagekitHelper *progress,
const gchar *package_id);
void gs_packagekit_helper_cb (PkProgress *progress,
diff --git a/plugins/packagekit/gs-plugin-packagekit-refresh.c b/plugins/packagekit/gs-plugin-packagekit-refresh.c
index ff893daaf..a8093de2c 100644
--- a/plugins/packagekit/gs-plugin-packagekit-refresh.c
+++ b/plugins/packagekit/gs-plugin-packagekit-refresh.c
@@ -156,7 +156,7 @@ gs_plugin_refresh (GsPlugin *plugin,
/* refresh the metadata */
gs_plugin_status_update (plugin, NULL, GS_PLUGIN_STATUS_WAITING);
- gs_packagekit_helper_add_app (helper, app_dl);
+ gs_packagekit_helper_set_progress_app (helper, app_dl);
results = pk_client_refresh_cache (PK_CLIENT (priv->task),
FALSE /* force */,
cancellable,
diff --git a/plugins/packagekit/gs-plugin-packagekit-upgrade.c b/plugins/packagekit/gs-plugin-packagekit-upgrade.c
index 63175bec3..38de93d55 100644
--- a/plugins/packagekit/gs-plugin-packagekit-upgrade.c
+++ b/plugins/packagekit/gs-plugin-packagekit-upgrade.c
@@ -77,7 +77,7 @@ gs_plugin_app_upgrade_download (GsPlugin *plugin,
/* ask PK to download enough packages to upgrade the system */
gs_app_set_state (app, AS_APP_STATE_INSTALLING);
- gs_packagekit_helper_add_app (helper, app);
+ gs_packagekit_helper_set_progress_app (helper, app);
results = pk_task_upgrade_system_sync (priv->task,
gs_app_get_version (app),
PK_UPGRADE_KIND_ENUM_COMPLETE,
--
2.21.0

View file

@ -0,0 +1,686 @@
From 0c79d9fb08a348a45a18f15427c945a63b44982e Mon Sep 17 00:00:00 2001
Date: Mon, 24 Nov 2025 16:06:51 +0100
Subject: [PATCH 1/3] flatpak: Fix XbSilo lifetime in
gs_flatpak_refine_wildcard()
The function uses pre-cached data in the hash tables, consisting of XbNode-s
from an XbSilo. The nodes are referenced, but the silos the node belongs to
is not referenced (by the XbNode).
This change keeps the XbSilo alive as long as it's needed for the nodes
in the pre-cached data. It also does not call gs_flatpak_ref_silo() multiple
times for the same GsFlatpak instance, which could invalidate the XbNode-s
in the pre-cached data when a change in the silo or in the installation
had been received while the function was still processing the apps.
Related downstream bug https://bugzilla.redhat.com/show_bug.cgi?id=2416542
Closes https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2900
---
plugins/flatpak/gs-flatpak.c | 18 ++++++++---
plugins/flatpak/gs-flatpak.h | 4 +++
plugins/flatpak/gs-plugin-flatpak.c | 49 ++++++++++++++++++++---------
3 files changed, 51 insertions(+), 20 deletions(-)
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index b409475c7..a40ab54fb 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -3748,16 +3748,19 @@ gboolean
gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
GsAppList *list, GsPluginRefineRequireFlags require_flags,
gboolean interactive,
+ XbSilo **inout_silo,
+ gchar **inout_silo_filename,
+ GHashTable **inout_installed_by_desktopid,
GHashTable **inout_components_by_id,
GHashTable **inout_components_by_bundle,
GCancellable *cancellable, GError **error)
{
const gchar *id;
GPtrArray* components = NULL;
+ XbSilo *silo;
+ GHashTable *silo_installed_by_desktopid;
+ const gchar *silo_filename;
g_autoptr(GError) error_local = NULL;
- g_autoptr(XbSilo) silo = NULL;
- g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
- g_autofree gchar *silo_filename = NULL;
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
@@ -3766,10 +3769,15 @@ gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
if (id == NULL)
return TRUE;
- silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
- if (silo == NULL)
+ if (*inout_silo == NULL)
+ *inout_silo = gs_flatpak_ref_silo (self, interactive, inout_silo_filename, inout_installed_by_desktopid, cancellable, error);
+ if (*inout_silo == NULL)
return FALSE;
+ silo = *inout_silo;
+ silo_filename = *inout_silo_filename;
+ silo_installed_by_desktopid = *inout_installed_by_desktopid;
+
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardQuerySilo, "Flatpak (query silo)", NULL);
if (*inout_components_by_id != NULL) {
diff --git a/plugins/flatpak/gs-flatpak.h b/plugins/flatpak/gs-flatpak.h
index 66ff59967..34e1416b5 100644
--- a/plugins/flatpak/gs-flatpak.h
+++ b/plugins/flatpak/gs-flatpak.h
@@ -11,6 +11,7 @@
#include <gnome-software.h>
#include <flatpak.h>
+#include <xmlb.h>
G_BEGIN_DECLS
@@ -108,6 +109,9 @@ gboolean gs_flatpak_refine_wildcard (GsFlatpak *self,
GsAppList *list,
GsPluginRefineRequireFlags require_flags,
gboolean interactive,
+ XbSilo **inout_silo,
+ gchar **inout_silo_filename,
+ GHashTable **inout_installed_by_desktopid,
GHashTable **inout_components_by_id,
GHashTable **inout_components_by_bundle,
GCancellable *cancellable,
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
index 3d0503d46..f5d4a1d67 100644
--- a/plugins/flatpak/gs-plugin-flatpak.c
+++ b/plugins/flatpak/gs-plugin-flatpak.c
@@ -667,12 +667,29 @@ gs_plugin_flatpak_refine_app (GsPluginFlatpak *self,
return gs_flatpak_refine_app (flatpak, app, require_flags, interactive, FALSE, event_callback, event_user_data, cancellable, error);
}
+typedef struct {
+ XbSilo *silo;
+ gchar *silo_filename;
+ GHashTable *installed_by_desktopid;
+ GHashTable *components_by_id;
+ GHashTable *components_by_bundle;
+} RefineInstallationData;
+
static void
-unref_nonnull_hash_table (gpointer ptr)
+refine_installation_data_free (gpointer ptr)
{
- GHashTable *hash_table = ptr;
- if (hash_table != NULL)
- g_hash_table_unref (hash_table);
+ RefineInstallationData *data = ptr;
+
+ if (data == NULL)
+ return;
+
+ g_clear_pointer (&data->silo_filename, g_free);
+ g_clear_pointer (&data->installed_by_desktopid, g_hash_table_unref);
+ g_clear_pointer (&data->components_by_id, g_hash_table_unref);
+ g_clear_pointer (&data->components_by_bundle, g_hash_table_unref);
+ /* free the silo as the last, just in case, because the data from it is in the above hash tables */
+ g_clear_object (&data->silo);
+ g_free (data);
}
static gboolean
@@ -761,8 +778,7 @@ refine_thread_cb (GTask *task,
gboolean interactive = (data->job_flags & GS_PLUGIN_REFINE_FLAGS_INTERACTIVE) != 0;
GsPluginEventCallback event_callback = data->event_callback;
void *event_user_data = data->event_user_data;
- g_autoptr(GPtrArray) array_components_by_id = NULL; /* (element-type GHashTable) */
- g_autoptr(GPtrArray) array_components_by_bundle = NULL; /* (element-type GHashTable) */
+ g_autoptr(GPtrArray) installation_data = NULL; /* (element-type RefineInstallationData) */
g_autoptr(GsAppList) app_list = NULL;
g_autoptr(GError) local_error = NULL;
@@ -783,10 +799,9 @@ refine_thread_cb (GTask *task,
* (e.g. inserting an app in the list on every call results in
* an infinite loop) */
app_list = gs_app_list_copy (list);
- array_components_by_id = g_ptr_array_new_full (self->installations->len, unref_nonnull_hash_table);
- g_ptr_array_set_size (array_components_by_id, self->installations->len);
- array_components_by_bundle = g_ptr_array_new_full (self->installations->len, unref_nonnull_hash_table);
- g_ptr_array_set_size (array_components_by_bundle, self->installations->len);
+
+ installation_data = g_ptr_array_new_full (self->installations->len, refine_installation_data_free);
+ g_ptr_array_set_size (installation_data, self->installations->len);
for (guint j = 0; j < gs_app_list_length (app_list); j++) {
GsApp *app = gs_app_list_index (app_list, j);
@@ -796,16 +811,20 @@ refine_thread_cb (GTask *task,
for (guint i = 0; i < self->installations->len; i++) {
GsFlatpak *flatpak = g_ptr_array_index (self->installations, i);
- GHashTable *components_by_id = array_components_by_id->pdata[i];
- GHashTable *components_by_bundle = array_components_by_bundle->pdata[i];
+ RefineInstallationData *inst_data = g_ptr_array_index (installation_data, i);
+
+ if (inst_data == NULL) {
+ inst_data = g_new0 (RefineInstallationData, 1);
+ installation_data->pdata[i] = inst_data;
+ }
- if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &components_by_id, &components_by_bundle,
+ if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &inst_data->silo,
+ &inst_data->silo_filename, &inst_data->installed_by_desktopid,
+ &inst_data->components_by_id, &inst_data->components_by_bundle,
cancellable, &local_error)) {
g_task_return_error (task, g_steal_pointer (&local_error));
return;
}
- array_components_by_id->pdata[i] = components_by_id;
- array_components_by_bundle->pdata[i] = components_by_bundle;
}
}
--
GitLab
From 546c6ee17b5959d2a696a6cb346a1f8b94aba303 Mon Sep 17 00:00:00 2001
Date: Wed, 7 Jan 2026 18:37:52 +0100
Subject: [PATCH 2/3] flatpak: Simplify wildcard app lookup function
By flipping the order of traversing app and installation the code
can be simplified to not have too many in/out arguments.
Suggested by Philip Withnall
---
plugins/flatpak/gs-flatpak.c | 251 ++++++++++++++--------------
plugins/flatpak/gs-flatpak.h | 9 +-
plugins/flatpak/gs-plugin-flatpak.c | 61 +------
3 files changed, 130 insertions(+), 191 deletions(-)
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index a40ab54fb..782b0bb48 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -3745,167 +3745,158 @@ gs_flatpak_refine_app (GsFlatpak *self,
}
gboolean
-gs_flatpak_refine_wildcard (GsFlatpak *self, GsApp *app,
- GsAppList *list, GsPluginRefineRequireFlags require_flags,
- gboolean interactive,
- XbSilo **inout_silo,
- gchar **inout_silo_filename,
- GHashTable **inout_installed_by_desktopid,
- GHashTable **inout_components_by_id,
- GHashTable **inout_components_by_bundle,
- GCancellable *cancellable, GError **error)
+gs_flatpak_refine_wildcards (GsFlatpak *self,
+ GPtrArray *wildcard_apps,
+ GsAppList *list,
+ GsPluginRefineRequireFlags require_flags,
+ gboolean interactive,
+ GCancellable *cancellable,
+ GError **error)
{
- const gchar *id;
- GPtrArray* components = NULL;
- XbSilo *silo;
- GHashTable *silo_installed_by_desktopid;
- const gchar *silo_filename;
g_autoptr(GError) error_local = NULL;
+ g_autoptr(XbSilo) silo = NULL;
+ g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
+ g_autoptr(GHashTable) components_by_id = NULL;
+ g_autoptr(GHashTable) components_by_bundle = NULL;
+ g_autoptr(GPtrArray) components_with_id = NULL;
+ g_autoptr(GPtrArray) bundles = NULL;
+ g_autofree gchar *silo_filename = NULL;
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
- /* not enough info to find */
- id = gs_app_get_id (app);
- if (id == NULL)
- return TRUE;
-
- if (*inout_silo == NULL)
- *inout_silo = gs_flatpak_ref_silo (self, interactive, inout_silo_filename, inout_installed_by_desktopid, cancellable, error);
- if (*inout_silo == NULL)
+ silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
+ if (silo == NULL)
return FALSE;
- silo = *inout_silo;
- silo_filename = *inout_silo_filename;
- silo_installed_by_desktopid = *inout_installed_by_desktopid;
-
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardQuerySilo, "Flatpak (query silo)", NULL);
- if (*inout_components_by_id != NULL) {
- components = g_hash_table_lookup (*inout_components_by_id, gs_app_get_id (app));
- } else {
- g_autoptr(GPtrArray) components_with_id = NULL;
- *inout_components_by_id = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_ptr_array_unref);
- components_with_id = xb_silo_query (silo, "components/component/id", 0, &error_local);
- if (components_with_id == NULL) {
- if (g_error_matches (error_local, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
- return TRUE;
- g_propagate_error (error, g_steal_pointer (&error_local));
- return FALSE;
+ components_by_id = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_ptr_array_unref);
+ components_with_id = xb_silo_query (silo, "components/component/id", 0, &error_local);
+ if (components_with_id == NULL) {
+ if (g_error_matches (error_local, G_IO_ERROR, G_IO_ERROR_NOT_FOUND))
+ return TRUE;
+ g_propagate_error (error, g_steal_pointer (&error_local));
+ return FALSE;
+ }
+
+ for (guint i = 0; i < components_with_id->len; i++) {
+ XbNode *node = g_ptr_array_index (components_with_id, i);
+ XbNode *comp_node = xb_node_get_parent (node);
+ const gchar *comp_id = xb_node_get_text (node);
+ GPtrArray *comps = g_hash_table_lookup (components_by_id, comp_id);
+ if (comps == NULL) {
+ comps = g_ptr_array_new_with_free_func (g_object_unref);
+ g_hash_table_insert (components_by_id, g_strdup (comp_id), comps);
}
- for (guint i = 0; i < components_with_id->len; i++) {
- XbNode *node = g_ptr_array_index (components_with_id, i);
- XbNode *comp_node = xb_node_get_parent (node);
- const gchar *comp_id = xb_node_get_text (node);
- GPtrArray *comps = g_hash_table_lookup (*inout_components_by_id, comp_id);
- if (comps == NULL) {
- comps = g_ptr_array_new_with_free_func (g_object_unref);
- g_hash_table_insert (*inout_components_by_id, g_strdup (comp_id), comps);
+ g_ptr_array_add (comps, comp_node);
+ }
+
+ components_by_bundle = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
+ bundles = xb_silo_query (silo, "/components/component/bundle[@type='flatpak']", 0, NULL);
+ for (guint b = 0; bundles != NULL && b < bundles->len; b++) {
+ XbNode *bundle_node = g_ptr_array_index (bundles, b);
+ g_autoptr(XbNode) component_node = xb_node_get_parent (bundle_node);
+ g_autoptr(XbNode) components_node = xb_node_get_parent (component_node);
+ const gchar *origin = xb_node_get_attr (components_node, "origin");
+ if (origin != NULL) {
+ const gchar *bundle = xb_node_get_text (bundle_node);
+ if (bundle != NULL) {
+ g_autofree gchar *key = g_strconcat (origin, "\n", bundle, NULL);
+ g_hash_table_insert (components_by_bundle, g_steal_pointer (&key), g_steal_pointer (&component_node));
}
- g_ptr_array_add (comps, comp_node);
- if (components == NULL && g_strcmp0 (id, comp_id) == 0)
- components = comps;
}
}
GS_PROFILER_END_SCOPED (FlatpakRefineWildcardQuerySilo);
- if (components == NULL)
- return TRUE;
-
gs_flatpak_ensure_remote_title (self, interactive, cancellable);
- if (*inout_components_by_bundle == NULL) {
- g_autoptr(GPtrArray) bundles = NULL;
-
- *inout_components_by_bundle = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
- bundles = xb_silo_query (silo, "/components/component/bundle[@type='flatpak']", 0, NULL);
- for (guint b = 0; bundles != NULL && b < bundles->len; b++) {
- XbNode *bundle_node = g_ptr_array_index (bundles, b);
- g_autoptr(XbNode) component_node = xb_node_get_parent (bundle_node);
- g_autoptr(XbNode) components_node = xb_node_get_parent (component_node);
- const gchar *origin = xb_node_get_attr (components_node, "origin");
- if (origin != NULL) {
- const gchar *bundle = xb_node_get_text (bundle_node);
- if (bundle != NULL) {
- g_autofree gchar *key = g_strconcat (origin, "\n", bundle, NULL);
- g_hash_table_insert (*inout_components_by_bundle, g_steal_pointer (&key), g_steal_pointer (&component_node));
- }
- }
- }
- }
+ for (guint j = 0; j < wildcard_apps->len; j++) {
+ GsApp *app = g_ptr_array_index (wildcard_apps, j);
+ GPtrArray *components = NULL;
+ const gchar *id;
+ /* not enough info to find */
+ id = gs_app_get_id (app);
+ if (id == NULL)
+ continue;
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardGenerateApps, "Flatpak (create app)", NULL);
- for (guint i = 0; i < components->len; i++) {
- XbNode *component = g_ptr_array_index (components, i);
- g_autoptr(GsApp) new = NULL;
+ components = g_hash_table_lookup (components_by_id, id);
+ if (components == NULL)
+ continue;
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardCreateAppstreamApp, "Flatpak (create Appstream app)", NULL);
- new = gs_appstream_create_app (self->plugin, silo, component, silo_filename ? silo_filename : "",
- self->scope, error);
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardCreateAppstreamApp);
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardGenerateApps, "Flatpak (create app)", NULL);
+ for (guint i = 0; i < components->len; i++) {
+ XbNode *component = g_ptr_array_index (components, i);
+ g_autoptr(GsApp) new = NULL;
- if (new == NULL)
- return FALSE;
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardCreateAppstreamApp, "Flatpak (create Appstream app)", NULL);
+ new = gs_appstream_create_app (self->plugin, silo, component, silo_filename ? silo_filename : "",
+ self->scope, error);
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardCreateAppstreamApp);
- gs_flatpak_claim_app (self, new);
-
- /* The appstream plugin did not find the component in the plugin's cache,
- thus read the required info from the 'bundle' element. */
- if (gs_flatpak_app_get_ref_name (new) == NULL ||
- gs_flatpak_app_get_ref_arch (new) == NULL) {
- const gchar *xref_str = NULL;
- g_autoptr(XbNode) child = NULL;
- g_autoptr(XbNode) next = NULL;
- for (child = xb_node_get_child (component); child != NULL && xref_str == NULL;
- g_object_unref (child), child = g_steal_pointer (&next)) {
- next = xb_node_get_next (child);
- if (g_strcmp0 (xb_node_get_element (child), "bundle") == 0 &&
- g_strcmp0 (xb_node_get_attr (child, "type"), "flatpak") == 0) {
- xref_str = xb_node_get_text (child);
- break;
+ if (new == NULL)
+ return FALSE;
+
+ gs_flatpak_claim_app (self, new);
+
+ /* The appstream plugin did not find the component in the plugin's cache,
+ thus read the required info from the 'bundle' element. */
+ if (gs_flatpak_app_get_ref_name (new) == NULL ||
+ gs_flatpak_app_get_ref_arch (new) == NULL) {
+ const gchar *xref_str = NULL;
+ g_autoptr(XbNode) child = NULL;
+ g_autoptr(XbNode) next = NULL;
+ for (child = xb_node_get_child (component); child != NULL && xref_str == NULL;
+ g_object_unref (child), child = g_steal_pointer (&next)) {
+ next = xb_node_get_next (child);
+ if (g_strcmp0 (xb_node_get_element (child), "bundle") == 0 &&
+ g_strcmp0 (xb_node_get_attr (child, "type"), "flatpak") == 0) {
+ xref_str = xb_node_get_text (child);
+ break;
+ }
}
- }
- if (xref_str != NULL) {
- g_auto(GStrv) split = NULL;
-
- /* get the kind/name/arch/branch */
- split = g_strsplit (xref_str, "/", -1);
- if (g_strv_length (split) == 4) {
- const gchar *comp_type = xb_node_get_attr (component, "type");
- AsComponentKind kind = as_component_kind_from_string (comp_type);
- if (kind != AS_COMPONENT_KIND_UNKNOWN)
- gs_app_set_kind (new, kind);
- else if (g_ascii_strcasecmp (split[0], "app") == 0)
- gs_app_set_kind (new, AS_COMPONENT_KIND_DESKTOP_APP);
- else if (g_ascii_strcasecmp (split[0], "runtime") == 0)
- gs_flatpak_set_runtime_kind_from_id (new);
- gs_flatpak_app_set_ref_name (new, split[1]);
- gs_flatpak_app_set_ref_arch (new, split[2]);
- gs_app_set_branch (new, split[3]);
- gs_app_set_metadata (new, "GnomeSoftware::packagename-value", xref_str);
+ if (xref_str != NULL) {
+ g_auto(GStrv) split = NULL;
+
+ /* get the kind/name/arch/branch */
+ split = g_strsplit (xref_str, "/", -1);
+ if (g_strv_length (split) == 4) {
+ const gchar *comp_type = xb_node_get_attr (component, "type");
+ AsComponentKind kind = as_component_kind_from_string (comp_type);
+ if (kind != AS_COMPONENT_KIND_UNKNOWN)
+ gs_app_set_kind (new, kind);
+ else if (g_ascii_strcasecmp (split[0], "app") == 0)
+ gs_app_set_kind (new, AS_COMPONENT_KIND_DESKTOP_APP);
+ else if (g_ascii_strcasecmp (split[0], "runtime") == 0)
+ gs_flatpak_set_runtime_kind_from_id (new);
+ gs_flatpak_app_set_ref_name (new, split[1]);
+ gs_flatpak_app_set_ref_arch (new, split[2]);
+ gs_app_set_branch (new, split[3]);
+ gs_app_set_metadata (new, "GnomeSoftware::packagename-value", xref_str);
+ }
}
}
- }
- if (gs_flatpak_app_get_ref_name (new) == NULL ||
- gs_flatpak_app_get_ref_arch (new) == NULL) {
- g_debug ("Failed to get ref info for '%s' from wildcard '%s', skipping it...", gs_app_get_id (new), id);
- } else {
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardRefineNewApp, "Flatpak (refine new app)", NULL);
- if (!gs_flatpak_refine_app_internal (self, new, require_flags, interactive, FALSE, *inout_components_by_bundle,
- silo, silo_filename, silo_installed_by_desktopid, cancellable, error))
- return FALSE;
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardRefineNewApp);
+ if (gs_flatpak_app_get_ref_name (new) == NULL ||
+ gs_flatpak_app_get_ref_arch (new) == NULL) {
+ g_debug ("Failed to get ref info for '%s' from wildcard '%s', skipping it...", gs_app_get_id (new), id);
+ } else {
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardRefineNewApp, "Flatpak (refine new app)", NULL);
+ if (!gs_flatpak_refine_app_internal (self, new, require_flags, interactive, FALSE, components_by_bundle,
+ silo, silo_filename, silo_installed_by_desktopid, cancellable, error))
+ return FALSE;
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardRefineNewApp);
- GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardSubsumeMetadata, "Flatpak (subsume metadata)", NULL);
- gs_app_subsume_metadata (new, app);
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardSubsumeMetadata);
+ GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcardSubsumeMetadata, "Flatpak (subsume metadata)", NULL);
+ gs_app_subsume_metadata (new, app);
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardSubsumeMetadata);
- gs_app_list_add (list, new);
+ gs_app_list_add (list, new);
+ }
}
+ GS_PROFILER_END_SCOPED (FlatpakRefineWildcardGenerateApps);
}
- GS_PROFILER_END_SCOPED (FlatpakRefineWildcardGenerateApps);
GS_PROFILER_END_SCOPED (FlatpakRefineWildcard);
diff --git a/plugins/flatpak/gs-flatpak.h b/plugins/flatpak/gs-flatpak.h
index 34e1416b5..1f7d35a8f 100644
--- a/plugins/flatpak/gs-flatpak.h
+++ b/plugins/flatpak/gs-flatpak.h
@@ -104,16 +104,11 @@ gboolean gs_flatpak_refine_app_state (GsFlatpak *self,
void *event_user_data,
GCancellable *cancellable,
GError **error);
-gboolean gs_flatpak_refine_wildcard (GsFlatpak *self,
- GsApp *app,
+gboolean gs_flatpak_refine_wildcards (GsFlatpak *self,
+ GPtrArray *wildcard_apps,
GsAppList *list,
GsPluginRefineRequireFlags require_flags,
gboolean interactive,
- XbSilo **inout_silo,
- gchar **inout_silo_filename,
- GHashTable **inout_installed_by_desktopid,
- GHashTable **inout_components_by_id,
- GHashTable **inout_components_by_bundle,
GCancellable *cancellable,
GError **error);
gboolean gs_flatpak_launch (GsFlatpak *self,
diff --git a/plugins/flatpak/gs-plugin-flatpak.c b/plugins/flatpak/gs-plugin-flatpak.c
index f5d4a1d67..c06b1fb5f 100644
--- a/plugins/flatpak/gs-plugin-flatpak.c
+++ b/plugins/flatpak/gs-plugin-flatpak.c
@@ -667,31 +667,6 @@ gs_plugin_flatpak_refine_app (GsPluginFlatpak *self,
return gs_flatpak_refine_app (flatpak, app, require_flags, interactive, FALSE, event_callback, event_user_data, cancellable, error);
}
-typedef struct {
- XbSilo *silo;
- gchar *silo_filename;
- GHashTable *installed_by_desktopid;
- GHashTable *components_by_id;
- GHashTable *components_by_bundle;
-} RefineInstallationData;
-
-static void
-refine_installation_data_free (gpointer ptr)
-{
- RefineInstallationData *data = ptr;
-
- if (data == NULL)
- return;
-
- g_clear_pointer (&data->silo_filename, g_free);
- g_clear_pointer (&data->installed_by_desktopid, g_hash_table_unref);
- g_clear_pointer (&data->components_by_id, g_hash_table_unref);
- g_clear_pointer (&data->components_by_bundle, g_hash_table_unref);
- /* free the silo as the last, just in case, because the data from it is in the above hash tables */
- g_clear_object (&data->silo);
- g_free (data);
-}
-
static gboolean
refine_app (GsPluginFlatpak *self,
GsApp *app,
@@ -778,8 +753,7 @@ refine_thread_cb (GTask *task,
gboolean interactive = (data->job_flags & GS_PLUGIN_REFINE_FLAGS_INTERACTIVE) != 0;
GsPluginEventCallback event_callback = data->event_callback;
void *event_user_data = data->event_user_data;
- g_autoptr(GPtrArray) installation_data = NULL; /* (element-type RefineInstallationData) */
- g_autoptr(GsAppList) app_list = NULL;
+ g_autoptr(GPtrArray) wildcard_apps = g_ptr_array_new_with_free_func (g_object_unref); /* (element-type GsApp) (owned) */
g_autoptr(GError) local_error = NULL;
assert_in_worker (self);
@@ -790,38 +764,17 @@ refine_thread_cb (GTask *task,
g_task_return_error (task, g_steal_pointer (&local_error));
return;
}
- }
-
- /* Refine wildcards.
- *
- * Use a copy of the list for the loop because a function called
- * on the plugin may affect the list which can lead to problems
- * (e.g. inserting an app in the list on every call results in
- * an infinite loop) */
- app_list = gs_app_list_copy (list);
-
- installation_data = g_ptr_array_new_full (self->installations->len, refine_installation_data_free);
- g_ptr_array_set_size (installation_data, self->installations->len);
-
- for (guint j = 0; j < gs_app_list_length (app_list); j++) {
- GsApp *app = gs_app_list_index (app_list, j);
- if (!gs_app_has_quirk (app, GS_APP_QUIRK_IS_WILDCARD))
- continue;
+ if (gs_app_has_quirk (app, GS_APP_QUIRK_IS_WILDCARD) && gs_app_get_id (app) != NULL)
+ g_ptr_array_add (wildcard_apps, g_object_ref (app));
+ }
+ /* Refine wildcards. */
+ if (wildcard_apps->len > 0) {
for (guint i = 0; i < self->installations->len; i++) {
GsFlatpak *flatpak = g_ptr_array_index (self->installations, i);
- RefineInstallationData *inst_data = g_ptr_array_index (installation_data, i);
-
- if (inst_data == NULL) {
- inst_data = g_new0 (RefineInstallationData, 1);
- installation_data->pdata[i] = inst_data;
- }
- if (!gs_flatpak_refine_wildcard (flatpak, app, list, require_flags, interactive, &inst_data->silo,
- &inst_data->silo_filename, &inst_data->installed_by_desktopid,
- &inst_data->components_by_id, &inst_data->components_by_bundle,
- cancellable, &local_error)) {
+ if (!gs_flatpak_refine_wildcards (flatpak, wildcard_apps, list, require_flags, interactive, cancellable, &local_error)) {
g_task_return_error (task, g_steal_pointer (&local_error));
return;
}
--
GitLab
From 8472d717356a801e6c0171156738ea48480fa695 Mon Sep 17 00:00:00 2001
Date: Wed, 7 Jan 2026 18:45:47 +0100
Subject: [PATCH 3/3] flatpak: Hold silo lock when refining wildcard apps
The refine can take a long time, thus hold the silo lock to not have
it invalidated from another thread. Object reference is not enough
for the XbSilo, it breaks as soon as the underlying file changes.
---
plugins/flatpak/gs-flatpak.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/plugins/flatpak/gs-flatpak.c b/plugins/flatpak/gs-flatpak.c
index 782b0bb48..c5437125d 100644
--- a/plugins/flatpak/gs-flatpak.c
+++ b/plugins/flatpak/gs-flatpak.c
@@ -59,7 +59,7 @@ struct _GsFlatpak {
AsComponentScope scope;
GsPlugin *plugin;
XbSilo *silo;
- GMutex silo_lock;
+ GRecMutex silo_lock;
gchar *silo_filename;
GHashTable *silo_installed_by_desktopid;
gint silo_change_stamp;
@@ -1187,11 +1187,11 @@ gs_flatpak_ref_silo (GsFlatpak *self,
g_autoptr(GFile) file = NULL;
g_autoptr(GPtrArray) xremotes = NULL;
g_autoptr(GPtrArray) desktop_paths = NULL;
- g_autoptr(GMutexLocker) locker = NULL;
+ g_autoptr(GRecMutexLocker) locker = NULL;
g_autoptr(XbBuilder) builder = NULL;
g_autoptr(GMainContext) old_thread_default = NULL;
- locker = g_mutex_locker_new (&self->silo_lock);
+ locker = g_rec_mutex_locker_new (&self->silo_lock);
/* everything is okay */
if (self->silo != NULL && xb_silo_is_valid (self->silo) &&
g_atomic_int_get (&self->silo_change_stamp_current) == g_atomic_int_get (&self->silo_change_stamp)) {
@@ -3754,6 +3754,7 @@ gs_flatpak_refine_wildcards (GsFlatpak *self,
GError **error)
{
g_autoptr(GError) error_local = NULL;
+ g_autoptr(GRecMutexLocker) silo_locker = NULL;
g_autoptr(XbSilo) silo = NULL;
g_autoptr(GHashTable) silo_installed_by_desktopid = NULL;
g_autoptr(GHashTable) components_by_id = NULL;
@@ -3764,6 +3765,11 @@ gs_flatpak_refine_wildcards (GsFlatpak *self,
GS_PROFILER_BEGIN_SCOPED (FlatpakRefineWildcard, "Flatpak (refine wildcard)", NULL);
+ /* the refine can take a long time, thus hold the silo lock to not have
+ it invalidated from another thread; object reference is not enough
+ for the XbSilo, it breaks as soon as the underlying file changes */
+ silo_locker = g_rec_mutex_locker_new (&self->silo_lock);
+
silo = gs_flatpak_ref_silo (self, interactive, &silo_filename, &silo_installed_by_desktopid, cancellable, error);
if (silo == NULL)
return FALSE;
@@ -4810,7 +4816,7 @@ gs_flatpak_finalize (GObject *object)
g_object_unref (self->plugin);
g_hash_table_unref (self->broken_remotes);
g_mutex_clear (&self->broken_remotes_mutex);
- g_mutex_clear (&self->silo_lock);
+ g_rec_mutex_clear (&self->silo_lock);
g_hash_table_unref (self->app_silos);
g_mutex_clear (&self->app_silos_mutex);
g_clear_pointer (&self->remote_title, g_hash_table_unref);
@@ -4831,7 +4837,7 @@ gs_flatpak_init (GsFlatpak *self)
{
/* XbSilo needs external locking as we destroy the silo and build a new
* one when something changes */
- g_mutex_init (&self->silo_lock);
+ g_rec_mutex_init (&self->silo_lock);
g_mutex_init (&self->installed_refs_mutex);
self->installed_refs = NULL;
--
GitLab

1
dnf5-plugin/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
checkout-gs-dnf5

35
dnf5-plugin/update-patch.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
if [ ! -d checkout-gs-dnf5 ]; then
git clone --branch main https://gitlab.gnome.org/mcrha/gnome-software.git checkout-gs-dnf5 && \
cd checkout-gs-dnf5 && \
git checkout -b wip/dnf5daemon origin/wip/dnf5daemon && \
cd - >/dev/null
if [ "$?" != "0" ]; then
echo "Failed to clone dnf5-plugin repository" 1>&2
exit 1;
fi
fi
PATCH_PATH=../0001-dnf5-plugin.patch
cd checkout-gs-dnf5 && \
echo "Updating gs-dnf5 git 'main' repository" && \
git checkout main && \
git pull --rebase && \
echo "Updating gs-dnf5 git 'dnf5-pugin' repository" && \
git checkout wip/dnf5daemon && \
git pull --rebase && \
echo -n "at " >../${PATCH_PATH} && \
git log HEAD | head -n 5 | grep -E "commit|Date" >>../${PATCH_PATH} && \
echo "" >>../${PATCH_PATH} && \
git diff main >>../${PATCH_PATH} && \
cd - >/dev/null
if [ "$?" = "0" ]; then
echo "Patch '${PATCH_PATH}' updated"
else
echo "Failed to update patch '${PATCH_PATH}'" 1>&2
exit 1
fi

View file

@ -1,473 +0,0 @@
From 0a1e76d866379ce6115aacd2cdee75db15bebab0 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Tue, 15 Jan 2019 23:48:33 +0100
Subject: [PATCH 1/3] shell: Improve the error message when whole update
operation fails
In case the whole updates operation fails and we don't have the data
which app failed, show 'Unable to install updates' error instead of
'Unable to update "(null)"'.
Fixes: https://gitlab.gnome.org/GNOME/gnome-software/issues/480
---
src/gs-shell.c | 120 +++++++++++++++++++++++++++++++++++--------------
1 file changed, 87 insertions(+), 33 deletions(-)
diff --git a/src/gs-shell.c b/src/gs-shell.c
index 6f1cda816..7c2f86d81 100644
--- a/src/gs-shell.c
+++ b/src/gs-shell.c
@@ -1355,23 +1355,34 @@ gs_shell_show_event_update (GsShell *shell, GsPluginEvent *event)
g_autofree gchar *str_origin = NULL;
g_autoptr(GString) str = g_string_new (NULL);
- str_app = gs_shell_get_title_from_app (app);
switch (error->code) {
case GS_PLUGIN_ERROR_DOWNLOAD_FAILED:
- if (origin != NULL) {
+ if (app != NULL && origin != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
str_origin = gs_shell_get_title_from_origin (origin);
/* TRANSLATORS: failure text for the in-app notification,
* where the first %s is the app name (e.g. "GIMP") and
* the second %s is the origin, e.g. "Fedora" or
* "Fedora Project [fedoraproject.org]" */
- g_string_append_printf (str, _("Unable to update %s from %s"),
+ g_string_append_printf (str, _("Unable to update %s from %s as download failed"),
str_app, str_origin);
buttons = TRUE;
- } else {
+ } else if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
/* TRANSLATORS: failure text for the in-app notification,
* where the %s is the application name (e.g. "GIMP") */
g_string_append_printf (str, _("Unable to update %s as download failed"),
str_app);
+ } else if (origin != NULL) {
+ str_origin = gs_shell_get_title_from_origin (origin);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the origin, e.g. "Fedora" or
+ * "Fedora Project [fedoraproject.org]" */
+ g_string_append_printf (str, _("Unable to install updates from %s as download failed"),
+ str_origin);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates as download failed"));
}
break;
case GS_PLUGIN_ERROR_NO_NETWORK:
@@ -1382,49 +1393,92 @@ gs_shell_show_event_update (GsShell *shell, GsPluginEvent *event)
buttons |= GS_SHELL_EVENT_BUTTON_NETWORK_SETTINGS;
break;
case GS_PLUGIN_ERROR_NO_SPACE:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "GIMP") */
- g_string_append_printf (str, _("Unable to update %s: "
- "not enough disk space"),
- str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "GIMP") */
+ g_string_append_printf (str, _("Unable to update %s: "
+ "not enough disk space"),
+ str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates: "
+ "not enough disk space"));
+ }
buttons |= GS_SHELL_EVENT_BUTTON_NO_SPACE;
break;
case GS_PLUGIN_ERROR_AUTH_REQUIRED:
case GS_PLUGIN_ERROR_PIN_REQUIRED:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "GIMP") */
- g_string_append_printf (str, _("Unable to update %s: "
- "authentication was required"),
- str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "GIMP") */
+ g_string_append_printf (str, _("Unable to update %s: "
+ "authentication was required"),
+ str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates: "
+ "authentication was required"));
+ }
break;
case GS_PLUGIN_ERROR_AUTH_INVALID:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "GIMP") */
- g_string_append_printf (str, _("Unable to update %s: "
- "authentication was invalid"),
- str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "GIMP") */
+ g_string_append_printf (str, _("Unable to update %s: "
+ "authentication was invalid"),
+ str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates: "
+ "authentication was invalid"));
+ }
break;
case GS_PLUGIN_ERROR_NO_SECURITY:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "GIMP") */
- g_string_append_printf (str, _("Unable to update %s: "
- "you do not have permission to "
- "update software"),
- str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "GIMP") */
+ g_string_append_printf (str, _("Unable to update %s: "
+ "you do not have permission to "
+ "update software"),
+ str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates: "
+ "you do not have permission to "
+ "update software"));
+ }
break;
case GS_PLUGIN_ERROR_AC_POWER_REQUIRED:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "Dell XPS 13") */
- g_string_append_printf (str, _("Unable to update %s: "
- "AC power is required"),
- str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "Dell XPS 13") */
+ g_string_append_printf (str, _("Unable to update %s: "
+ "AC power is required"),
+ str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "Dell XPS 13") */
+ g_string_append_printf (str, _("Unable to install updates: "
+ "AC power is required"));
+ }
break;
case GS_PLUGIN_ERROR_CANCELLED:
break;
default:
- /* TRANSLATORS: failure text for the in-app notification,
- * where the %s is the application name (e.g. "GIMP") */
- g_string_append_printf (str, _("Unable to update %s"), str_app);
+ if (app != NULL) {
+ str_app = gs_shell_get_title_from_app (app);
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the application name (e.g. "GIMP") */
+ g_string_append_printf (str, _("Unable to update %s"), str_app);
+ } else {
+ /* TRANSLATORS: failure text for the in-app notification */
+ g_string_append_printf (str, _("Unable to install updates"));
+ }
break;
}
if (str->len == 0)
--
2.21.0
From af764483533ac1afc42a5c0f1c6b76c43be1d24d Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Tue, 15 Jan 2019 23:49:50 +0100
Subject: [PATCH 2/3] shell: Add details for a system upgrade error
Make the "internet access was required" error look the same as the rest
of the system upgrade errors, showing which distro version we were
trying to upgrade to.
---
src/gs-shell.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/gs-shell.c b/src/gs-shell.c
index 7c2f86d81..7c97740fa 100644
--- a/src/gs-shell.c
+++ b/src/gs-shell.c
@@ -1534,10 +1534,12 @@ gs_shell_show_event_upgrade (GsShell *shell, GsPluginEvent *event)
}
break;
case GS_PLUGIN_ERROR_NO_NETWORK:
- /* TRANSLATORS: failure text for the in-app notification */
- g_string_append (str, _("Unable to upgrade: "
- "internet access was required but "
- "wasnt available"));
+ /* TRANSLATORS: failure text for the in-app notification,
+ * where the %s is the distro name (e.g. "Fedora 25") */
+ g_string_append_printf (str, _("Unable to upgrade to %s: "
+ "internet access was required but "
+ "wasnt available"),
+ str_app);
buttons |= GS_SHELL_EVENT_BUTTON_NETWORK_SETTINGS;
break;
case GS_PLUGIN_ERROR_NO_SPACE:
--
2.21.0
From 0d3c47f69e7f6452412a0a3e6704106eefc0c658 Mon Sep 17 00:00:00 2001
From: Kalev Lember <klember@redhat.com>
Date: Tue, 15 Jan 2019 23:55:22 +0100
Subject: [PATCH 3/3] shell: Improve the logic when to show detailed error
messages
Make sure we never have "Sorry, something went wrong" without actual
details what went wrong.
---
src/gs-shell.c | 64 +++++++++++---------------------------------------
1 file changed, 14 insertions(+), 50 deletions(-)
diff --git a/src/gs-shell.c b/src/gs-shell.c
index 7c97740fa..3eea95028 100644
--- a/src/gs-shell.c
+++ b/src/gs-shell.c
@@ -990,16 +990,6 @@ gs_shell_get_title_from_app (GsApp *app)
return g_strdup_printf (_("“%s”"), gs_app_get_id (app));
}
-static gboolean
-gs_shell_show_detailed_error (GsShell *shell, const GError *error)
-{
- if (error->code == GS_PLUGIN_ERROR_FAILED)
- return TRUE;
- if (error->code == GS_PLUGIN_ERROR_DOWNLOAD_FAILED)
- return TRUE;
- return FALSE;
-}
-
static gchar *
get_first_line (const gchar *str)
{
@@ -1055,6 +1045,7 @@ gs_shell_show_event_refresh (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Unable to download updates"));
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
case GS_PLUGIN_ERROR_NO_NETWORK:
/* TRANSLATORS: failure text for the in-app notification */
@@ -1106,6 +1097,7 @@ gs_shell_show_event_refresh (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification */
g_string_append (str, _("Unable to get list of updates"));
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1121,10 +1113,6 @@ gs_shell_show_event_refresh (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1173,15 +1161,12 @@ gs_shell_show_event_purchase (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification,
* where the %s is the application name (e.g. "GIMP") */
g_string_append_printf (str, _("Unable to purchase %s"), str_app);
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
return FALSE;
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, GS_SHELL_EVENT_BUTTON_NONE);
return TRUE;
@@ -1218,6 +1203,7 @@ gs_shell_show_event_install (GsShell *shell, GsPluginEvent *event)
"as download failed"),
str_app);
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
case GS_PLUGIN_ERROR_NOT_SUPPORTED:
if (origin != NULL) {
@@ -1319,6 +1305,7 @@ gs_shell_show_event_install (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification,
* where the %s is the application name (e.g. "GIMP") */
g_string_append_printf (str, _("Unable to install %s"), str_app);
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1334,10 +1321,6 @@ gs_shell_show_event_install (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1384,6 +1367,7 @@ gs_shell_show_event_update (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification */
g_string_append_printf (str, _("Unable to install updates as download failed"));
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
case GS_PLUGIN_ERROR_NO_NETWORK:
/* TRANSLATORS: failure text for the in-app notification */
@@ -1479,6 +1463,7 @@ gs_shell_show_event_update (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification */
g_string_append_printf (str, _("Unable to install updates"));
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1494,10 +1479,6 @@ gs_shell_show_event_update (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1532,6 +1513,7 @@ gs_shell_show_event_upgrade (GsShell *shell, GsPluginEvent *event)
"as download failed"),
str_app);
}
+ gs_shell_append_detailed_error (shell, str, error);
break;
case GS_PLUGIN_ERROR_NO_NETWORK:
/* TRANSLATORS: failure text for the in-app notification,
@@ -1585,6 +1567,7 @@ gs_shell_show_event_upgrade (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification,
* where the %s is the distro name (e.g. "Fedora 25") */
g_string_append_printf (str, _("Unable to upgrade to %s"), str_app);
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1600,10 +1583,6 @@ gs_shell_show_event_upgrade (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1658,6 +1637,7 @@ gs_shell_show_event_remove (GsShell *shell, GsPluginEvent *event)
/* TRANSLATORS: failure text for the in-app notification,
* where the %s is the application name (e.g. "GIMP") */
g_string_append_printf (str, _("Unable to remove %s"), str_app);
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1673,10 +1653,6 @@ gs_shell_show_event_remove (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1722,6 +1698,7 @@ gs_shell_show_event_launch (GsShell *shell, GsPluginEvent *event)
return FALSE;
/* TRANSLATORS: we failed to get a proper error code */
g_string_append (str, _("Sorry, something went wrong"));
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1737,10 +1714,6 @@ gs_shell_show_event_launch (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1776,15 +1749,12 @@ gs_shell_show_event_file_to_app (GsShell *shell, GsPluginEvent *event)
return FALSE;
/* TRANSLATORS: we failed to get a proper error code */
g_string_append (str, _("Sorry, something went wrong"));
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
return FALSE;
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1820,15 +1790,12 @@ gs_shell_show_event_url_to_app (GsShell *shell, GsPluginEvent *event)
return FALSE;
/* TRANSLATORS: we failed to get a proper error code */
g_string_append (str, _("Sorry, something went wrong"));
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
return FALSE;
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- g_string_append_printf (str, "\n%s", error->message);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
@@ -1890,6 +1857,7 @@ gs_shell_show_event_fallback (GsShell *shell, GsPluginEvent *event)
return FALSE;
/* TRANSLATORS: we failed to get a proper error code */
g_string_append (str, _("Sorry, something went wrong"));
+ gs_shell_append_detailed_error (shell, str, error);
break;
}
if (str->len == 0)
@@ -1905,10 +1873,6 @@ gs_shell_show_event_fallback (GsShell *shell, GsPluginEvent *event)
}
}
- /* add extra debugging for debug builds */
- if (gs_shell_show_detailed_error (shell, error))
- gs_shell_append_detailed_error (shell, str, error);
-
/* show in-app notification */
gs_shell_show_event_app_notify (shell, str->str, buttons);
return TRUE;
--
2.21.0

File diff suppressed because it is too large Load diff

7
rpminspect.yaml Normal file
View file

@ -0,0 +1,7 @@
---
runpath:
allowed_paths:
- /usr/lib/gnome-software
- /usr/lib/rpm-ostree
- /usr/lib64/gnome-software
- /usr/lib64/rpm-ostree

View file

@ -1,3 +1 @@
SHA512 (gnome-software-3.30.6.tar.xz) = dd98e9e61469fc5566ab569f09bdc06ccb5812a236e305185b911c70364e2983f257e939aed0bb61778163084fb5628d63ff6bd5f056d4a7626a2e771ad6426a
SHA512 (f30.png) = 0e90083bda910c13ca9c08b8cde09ffdc8cf9176d84406539235ed3da71ca8bdf5342bf0dfbbd74f6052dffc8c8035e03c6f7ed4d578fa0e84af43e6993df32f
SHA512 (f31.png) = 69e6c8291d93640d4d6f5d71c3a9e08f65a90c19c38b6036423c236063e68be03b68c2668aae6d8b0a03c7a24bf8ae8e108dfb2a9cd85b7bb232751b3e05bb0f
SHA512 (gnome-software-49.3.tar.xz) = 0414ea55ad3b83bcd50514985e3d2026207801c040934805bb26d162e88f0619a9d70aa6ba324a29acfab02573490b928c83594b54f57ec2a8ad00e6c127f657