Existing PackageKit version doesn't handle modular repos correctly.
To filter package set according to enabled/default module streams a new libdnf is required. The libdnf change is not sufficient, because PackageKit creates additional sack instances for caching purposes and dnf_sack_filter_modules() needs to be applied on those instances.
To make modularity work correctly, we need a new PackageKit release with following commit:
Discussed at the 2018-07-16 blocker review meeting :
AcceptedBlocker (Beta) - as https://fedoraproject.org/wiki/Changes/ModulesForEveryone is accepted for F29 and means modules will be enabled for all installs, this is accepted as a Beta blocker as a violation of Beta criterion "The installed system must be able to download and install appropriate updates with the default tool for the relevant update type in all release-blocking desktops"
Daniel, the patch listed is insufficient. I just made a scratch-build with it (and also https://github.com/hughsie/PackageKit/commit/a7533e2c9eb0554bd32723f70d64a68acb67d7b4) at https://koji.fedoraproject.org/koji/taskinfo?taskID=28563078 for testing this out and it's still not filtering properly.
Steps I followed:
0) Install a Rawhide x86_64 VM
1) Install fedora-repos-rawhide-modular
2) `dnf module install cri-o:2017.0`
3) `pkcon update`
No updates related to cri-o should be available (since it was freshly installed from the latest versions in the module)
The following packages have to be installed:
containers-common-0.1.31-9.gitae64ff7.fc29.x86_64 Configuration files for working with image signatures
The following packages have to be updated:
conmon-2:1.12.0-8.dev.git57c4053.fc29.x86_64 OCI container runtime monitor
container-selinux-2:2.68-2.gitc139a3d.fc29.noarch SELinux policies for container runtimes
cri-o-2:1.12.0-8.dev.git57c4053.fc29.x86_64 Kubernetes Container Runtime Interface for OCI-based containers
runc-2:1.0.0-43.dev.git21ac086.fc29.x86_64 CLI for running Open Containers
The following packages have to be obsoleted:
skopeo-containers-0.1.29-5.git7add6fc.module_1637+1872e86a.x86_64 Configuration files for working with image signatures
Proceed with changes? [N/y]
So these patches are not sufficient to filter out the RPMs from the standard repo.
So, it turned out my testing methodology was flawed. I needed to explicitly restart the PackageKit service after updating the package. The patch then worked correctly. I've built the package in Rawhide yesterday, so it should be making its way to mirrors today or tomorrow.
Following the basic test procedure in #c2 seems to work in current rawhide (i.e. pkcon update doesn't update cri-o etc. to the newer version from the regular Rawhide repo), so closing.