⋊> ~ rpm -q libgit2 08:29:33 libgit2-0.27.4-1.module_2222+2faedab6.x86_64 ⋊> ~ rpm -e --test libgit2 08:29:35 error: Failed dependencies: libgit2(x86-64) = 0.27.4-1.module_2222+2faedab6 is needed by (installed) libgit2-devel-0.27.4-1.module_2222+2faedab6.x86_64 libgit2.so.27()(64bit) is needed by (installed) git-evtag-2016.1-8.fc29.x86_64 libgit2.so.27()(64bit) is needed by (installed) libgit2-devel-0.27.4-1.module_2222+2faedab6.x86_64 libgit2.so.27()(64bit) is needed by (installed) bat-0.7.1-1.fc30.x86_64 ⋊> ~ sudo dnf module install libgit2:0.26 08:29:36 Last metadata expiration check: 0:00:09 ago on Sun 07 Oct 2018 08:29:29 AM CEST. No default profiles for module libgit2:0.26 Default profile default not matched for module libgit2:0.26 Dependencies resolved. ============================================================================================================================================ Package Arch Version Repository Size ============================================================================================================================================ Installing module profiles: libgit2/default Switching module streams: libgit2 0.27 -> 0.26 Transaction Summary ============================================================================================================================================ Is this ok [y/N]: n Operation aborted. --- What I would expect that it would immediately fail (because libgit2 RPM from 0.26 stream would create broken dependencies), however it does nothing. --- libdnf-0.20.0-2.fc30.x86_64 dnf-3.6.1-2.fc30.noarch
Please can you provide a debugsolver
Created attachment 1491639 [details] libgit-switch-stream.tar.xz
⋊> ~ sudo dnf module enable libgit2:0.26 --debugsolver --assumeno 13:54:33 Last metadata expiration check: 0:01:11 ago on Mon 08 Oct 2018 01:53:28 PM CEST. Dependencies resolved. =================================================================================================================================================================================================================== Package Arch Version Repository Size =================================================================================================================================================================================================================== Switching module streams: libgit2 0.27 -> 0.26 Transaction Summary ===================================================================================================================================================================================================================
I think it does exactly according to specification.
(In reply to Jaroslav Mracek from comment #4) > I think it does exactly according to specification. can you point me to the specification? If I switch module stream, all RPMs from old stream must be changed to new stream. This is not what is happening here.
I am sorry, I don't have a link, but I am sure that people from modularity team will have. Changing a component.
This behavior was never specified by anything but the DNF team decided to do it this way because it's closer to how repositories are handled. You're expected to run distro-sync after switching streams. I believe DNF hints this to you or used to at one point. When we discussed this with desktop representatives, they plan on doing something similar -- offer package sync but leave the decision to the user. I see this is not documented under https://docs.fedoraproject.org/en-US/modularity/using-modules/#_changing_a_stream and it should be. CC'ing Adam. I'm not a fan of this either but I wouldn't consider it a bug; perhaps the UI could be improved.