Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1833176
Summary: | GNOME offline update doesn't do anything with PackageKit 1.2.0 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Adam Williamson <awilliam> |
Component: | PackageKit | Assignee: | Richard Hughes <rhughes> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | rawhide | CC: | jonathan, klember, rdieter, rhughes, robatino, smparrish, zbyszek |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | openqa | ||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2020-05-23 00:17:48 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1766775 |
Description
Adam Williamson
2020-05-08 00:34:42 UTC
This line in the spec got commented out in the 1.2.0 spec file update: %{_unitdir}/system-update.target.wants/ that sort of suggests that the build stopped putting files in that directory. Which seems a lot like it might be the problem here. In PackageKit-1.1.13-2.fc32.x86_64 , that directory has these files: [adamw@adam PackageKit (master %)]$ ls /usr/lib/systemd/system/system-update.target.wants/ dnf-system-upgrade.service grub-boot-indeterminate.service fwupd-offline-update.service packagekit-offline-update.service ...but in the 1.2.0 build, as the spec file implies, the directory just went missing and all those entries are gone. Which, you can see how that would result in system-update.target not doing much. Correction - only packagekit-offline-update.service actually belong(s/ed) to PackageKit, the other three on my local machine come from other packages. But packagekit-offline-update.service not being in that directory is the problem here. Seems this is an upstream bug, the ability to install the .wants link was simply lost in the meson transition. The old autotools files had this: https://github.com/hughsie/PackageKit/blob/PACKAGEKIT_1_1_13/data/Makefile.am#L46-L49 but the new meson.build does not appear to have any equivalent. It only installs the service file to /usr/lib/systemd/system, it doesn't deploy the symlink that actually gets the service to run when it should. I'd send a patch but I'm not sure what the Recommended Way to do this with meson would be. I can't find any kind of nice 'systemd unit' integrations, and even creating symlinks seems to be missing from Meson, with a couple of issues with three year histories: https://github.com/mesonbuild/meson/issues/1602 https://github.com/mesonbuild/meson/pull/1768 systemd itself seems to have a little script that ultimately just runs ln: https://github.com/systemd/systemd/blob/master/units/meson-add-wants.sh so I guess maybe that's all we can do too? OK, so one way we could do this would be to revert this commit: https://github.com/hughsie/PackageKit/commit/551a85fa632727e6fa3559ff7814fb159d345247 and just enable the service in the RPM spec (other distros would have to do the same in their respective packages). The justification for that commit has kind of gone, because systemd itself now has a backup service that wipes the /system-update marker file if it still exists. That's /usr/lib/systemd/system/system-update-cleanup.service , it is the thing you can see wiping the marker file in the log extract above: May 07 17:09:18 localhost.localdomain systemd[1]: Starting Remove the Offline System Updates Symlink... May 07 17:09:18 localhost.localdomain rm[670]: removed '/system-update' May 07 17:09:18 localhost.localdomain systemd[1]: system-update-cleanup.service: Succeeded. May 07 17:09:18 localhost.localdomain systemd[1]: Finished Remove the Offline System Updates Symlink. ...which is why the tests don't get trapped in a reboot loop even though packagekit-offline-update.service doesn't fire. So I've fixed this in the downstream spec for now, by just creating the symlink at the end of %install: https://src.fedoraproject.org/rpms/PackageKit/c/66098b111d04f1441746cc0ff6ebf7cfe2e4803b?branch=master and done a build: https://koji.fedoraproject.org/koji/taskinfo?taskID=44229804 so I'll mark this ON_QA and close it if the fix works. We can use the upstream issue to work on a permanent fix. Rawhide tests between 0509 and 0513 passed, so that confirms this is fixed, closing. |