Description of problem: If you enable a different stream of an installed moduleE depending on moduleD and the new stream depends on ModuleB, moduleD is not disable neither are its deps removed. Version-Release number of selected component (if applicable): 2.7.5-13 How reproducible: always Steps to Reproduce: 1. data: artifacts: rpms: ["TestG-0:2-1.modB.noarch", "TestH-0:2-1.modB.noarch"] components: rpms: TestG: {rationale: 'rationale for TestG'} TestH: {rationale: 'rationale for TestH'} description: Module ModuleB description license: module: [MIT] name: ModuleB profiles: default: rpms: [TestG, TestH] stream: f27 summary: Module ModuleB summary version: 1 document: modulemd version: 2 --- data: artifacts: rpms: ["TestM-0:1-1.modD.noarch"] components: rpms: TestM: {rationale: 'rationale for TestM'} description: Module ModuleD description license: module: [MIT] name: ModuleD profiles: default: rpms: [TestM] stream: f26 summary: Module ModuleD summary version: 1 document: modulemd version: 2 --- data: artifacts: rpms: ["TestP-0:1-1.modE.noarch"] components: rpms: TestP: {rationale: 'rationale for TestP'} dependencies: - requires: ModuleD: ["f26"] description: Module ModuleE description license: module: [MIT] name: ModuleE profiles: default: rpms: [TestP] stream: f26 summary: Module ModuleE summary version: 1 document: modulemd version: 2 --- data: artifacts: rpms: ["TestN-0:1-1.modD.noarch"] components: rpms: TestN: {rationale: 'rationale for TestN'} dependencies: - requires: ModuleB: ["f27"] description: Module ModuleE description license: module: [MIT] name: ModuleE profiles: default: rpms: [TestN] stream: f27 summary: Module ModuleE summary version: 1 document: modulemd version: 2 2. Enable moduleE:f26 3. Install moduleE:f26 4. Enable moduleE:f27 Actual results: moduleD is enabled and its packages are installed Expected results: moduleD is disabled and its packages are removed Additional info:
The same problematic behavior occurs when step 4 in the description is replaced with "Install ModuleE:f27".
Dnf shouldn't disable anything automatically, it's pretty dangerous behaviour and can possibly break system.