Bug 1581160 - [modularity] Enabling different stream of installed module does not disable obsolete dependency
Summary: [modularity] Enabling different stream of installed module does not disable o...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1478068 1581226
TreeView+ depends on / blocked
 
Reported: 2018-05-22 09:21 UTC by Rafael Fonseca
Modified: 2018-05-28 11:23 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
: 1581226 (view as bug list)
Environment:
Last Closed: 2018-05-28 11:23:57 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Rafael Fonseca 2018-05-22 09:21:37 UTC
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:

Comment 1 Merlin Mathesius 2018-05-22 16:29:28 UTC
The same problematic behavior occurs when step 4 in the description is replaced with "Install ModuleE:f27".

Comment 2 Martin Hatina 2018-05-28 11:23:57 UTC
Dnf shouldn't disable anything automatically, it's pretty dangerous behaviour and can possibly break system.


Note You need to log in before you can comment on or make changes to this bug.