Bug 1582524
Summary: | dnf doesn't follow default profile for an enabled non-default stream | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Karel Srot <ksrot> |
Component: | dnf | Assignee: | rpm-software-management |
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | urgent | Docs Contact: | |
Priority: | high | ||
Version: | 28 | CC: | awilliam, dmach, james.antill, ksrot, lruzicka, mhatina, packaging-team-maint, robatino, rpm-software-management, sgallagh, vmukhame |
Target Milestone: | --- | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | AcceptedBlocker | ||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | 1582450 | Environment: | |
Last Closed: | 2018-09-10 08:24:24 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: | 1478068, 1517011 |
Description
Karel Srot
2018-05-25 13:33:17 UTC
For the record, I can reproduce this with DNF on F28 easily with the following steps: 1. Install fedora-repos-modular 2. Create the file /etc/dnf/modules.defaults.d/nodejs.yaml with the contents: ``` document: modulemd-defaults version: 1 data: module: nodejs stream: 10 profiles: 10: [ development ] 6: [ minimal ] ``` (This tells DNF that the "10" stream is the default for this system and sets the default profiles for stream "10" and "6" to be different) 3. `dnf module install nodejs:6` (This tells DNF to install a non-default stream that should use the 'minimal' profile, since that's the one that matches from the defaults file. Actual results: DNF installs packages from the "6" stream, but uses the "development" profile instead of the "minimal" profile. It also writes /etc/dnf/modules.d/nodejs.module with the contents: ``` [nodejs] name = nodejs stream = 10 version = 20180503133726 profiles =development enabled = 1 locked = 0 ``` Note that it has specified that the stream is 10 (despite installing packages from the "6" stream) and that the enabled profiles are "development". Also, after this, `dnf module list` shows: nodejs 10 [d][e] 20180510163433 default, development, ... indicating that DNF erroneously thinks that the module stream "10" is active, which results in a subsequent `dnf update` attempting to replace the Node.js 6.x packages with ones from 10.x. Expected results: The packages must be installed from the 6.x stream, the default profile used must be "minimal" as set in the defaults file and the .module file in /etc/dnf/modules.d must contain these same values. Proposed as a Blocker for 29-beta by Fedora user sgallagh using the blocker tracking app because: "The installed system must be able to download and install appropriate updates with the default console tool for the relevant update type (e.g. default console package manager)." Looks +1ish to me, yep. Investigation is ongoing, but this is looking like it *may* only happen when someone uses an override file, so it’s possible this is not a strictly be a blocker. I’m trying to figure out if this affects things that are only coming from repodata. Please defer this from the blocker bug meeting on Monday, as it’s a holiday here and I probably won’t have time to fully dig into this before Tuesday. (In reply to Stephen Gallagher from comment #4) > Investigation is ongoing, but this is looking like it *may* only happen when > someone uses an override file, so it’s possible this is not a strictly be a > blocker. Nope. I did move the content into the yaml file in the repository and as you can see the module defaults are listed incorrectly for stream f27. bash-4.4# dnf module list Last metadata expiration check: 0:00:04 ago on Fri May 25 21:13:06 2018. modularityABDE Name Stream Version Profiles ModuleA f26 [d] 2 client, default, ... ModuleA f27 1 client, default, ... Hint: [d]efault, [e]nabled, [i]nstalled, [l]ocked bash-4.4# dnf module info ModuleA:f26 Last metadata expiration check: 0:00:17 ago on Fri May 25 21:13:06 2018. Name : ModuleA Stream : f26 (default) Version : 2 Profiles : client default devel minimal server Default profiles : devel minimal Repo : modularityABDE Summary : Module ModuleA summary Description : Module ModuleA description Artifacts : TestA-0:1-2.modA.noarch : TestB-0:1-1.modA.noarch : TestC-0:1-2.modA.noarch : TestD-0:1-1.modA.noarch bash-4.4# dnf module info ModuleA:f27 Last metadata expiration check: 0:00:22 ago on Fri May 25 21:13:06 2018. Name : ModuleA Stream : f27 Version : 1 Profiles : client default devel minimal server Default profiles : devel minimal Repo : modularityABDE Summary : Module ModuleA summary Description : Module ModuleA description Artifacts : TestA-0:2-1.modA.noarch : TestB-0:2-1.modA.noarch : TestC-0:2-1.modA.noarch : TestD-0:2-1.modA.noarch Discussed at the 2018-07-16 blocker review meeting [1]: AcceptedBlocker (Beta) - accepted as a violation of Basic criterion "The installed system must be able to download and install appropriate updates with the default console tool for the relevant update type (e.g. default console package manager)", in a fairly simple module stream configuration https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2018-07-16/ Karel, Stephen - can you confirm whether this is now considered sufficiently resolved and should be closed? Thanks! I could not try mine reproducer as I can't install python3-behave on F29 but tried Stephen's one and it seems to work correctly with dnf-3.3.0-1.fc29.noarch libdnf-0.17.2-1.fc29.x86_64 from Koji. Pasting some evidence: [root@1d266697710f /]# cat /etc/dnf/modules.defaults.d/nodejs.yaml document: modulemd-defaults version: 1 data: module: nodejs stream: 10 profiles: 10: [ development ] 8: [ minimal ] [root@1d266697710f /]# dnf module install nodejs:8 --nogpgcheck Last metadata expiration check: 0:03:22 ago on Mon Aug 20 09:09:30 2018. Dependencies resolved. ============================================================================================================== Package Arch Version Repository Size ============================================================================================================== Installing group packages: nodejs x86_64 1:8.11.4-1.module_2030+42747d40 fedora-modular 7.3 M Installing dependencies: compat-openssl10 x86_64 1:1.0.2o-3.fc29 rawhide 1.1 M gc x86_64 7.6.4-4.fc29 rawhide 101 k guile x86_64 5:2.0.14-12.fc29 rawhide 3.5 M http-parser x86_64 2.8.1-2.fc29 rawhide 37 k libatomic_ops x86_64 7.6.6-1.fc29 rawhide 34 k libtool-ltdl x86_64 2.4.6-25.fc29 rawhide 36 k libuv x86_64 1:1.22.0-2.fc29 rawhide 126 k make x86_64 1:4.2.1-10.fc29 rawhide 487 k Installing weak dependencies: npm x86_64 1:5.6.0-1.8.11.4.1.module_2030+42747d40 fedora-modular 4.0 M Installing module profiles: nodejs/minimal Enabling module streams: nodejs 8 Transaction Summary ... ... Complete! [root@1d266697710f /]# cat /etc/dnf/modules.d/nodejs.module [nodejs] name=nodejs profiles=minimal state=enabled stream=8 [root@1d266697710f /]# dnf module list --installed Last metadata expiration check: 0:03:41 ago on Mon Aug 20 09:09:30 2018. Fedora Modular 29 - x86_64 Name Stream Profiles Summary nodejs 8 [e] default, development [d], minimal[i], ... Javascript runtime Hint: [d]efault, [e]nabled, [i]nstalled Karel: 3.3.0 is still not stable for F29 yet. Sorry to be a pain, but do we know if this works with 3.2.0-2.fc29? Yes, with dnf-3.2.0-2.fc29.noarch the issue is also fixed. Thanks. |