Bug 797304

Summary: yast2-packager: Don't install recommended packages for minimal pattern
Product: [openSUSE] openSUSE Tumbleweed Reporter: Ludwig Nussel <lnussel>
Component: YaST2Assignee: Martin Vidner <mvidner>
Status: IN_PROGRESS --- QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P3 - Medium CC: gs, lmuelle, lslezak, rneuhauser
Version: 13.1 Milestone 1   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://trello.com/c/fc9pedpd
See Also: https://fate.suse.com/318099
Whiteboard: GOLD
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: potential patch, untested

Description Ludwig Nussel 2013-01-08 16:19:05 UTC
Created attachment 519347 [details]
potential patch, untested

The minimal pattern suffers from size problems due to packages recommending lots of others that are considered unneeded for a minimal installation. There is no way for a pattern to express that recommended packages should be ignored. So far the only way to block such packages it to have a pattern that conflicts with them which is not ideal either.

So as a hack yast could be patched to not install recommended packages during initial installation with the minimal pattern.
Comment 1 Ludwig Nussel 2013-01-09 09:30:52 UTC
Some clarification after talking to Gabi. Of course this is also just a hack but I see no good solution either. Some kind of "soft conflict" would be nice or a way to ignore only certain dependencies like it's possible in obs. We don't have that though.
Comment 2 Ludwig Nussel 2013-01-09 09:37:43 UTC
Also, this change comes at a price. The minimal pattern has to require packages then, atm it only recommends stuff too.
Comment 3 Gabriele Mohr 2013-01-09 11:04:40 UTC
I wouldn't change the current behaviour and set the solver flag 'onlyRequires' to 'true' generally for the minimal server selection. There might be also users who don't want it this way and I think the "recommends" of packages usually make sense. And as Ludwig wrote, the minimal selection has to require packages then.

Users who want to reduce the number of packages installed can customize the
selection by entering 'Software' in 'Installation Settings' overview. 

For Qt: click 'Details' and select 'View' 'Installation Summary'. Tab 'Package'
has an entry to change status for all packages in the list (to 'Do not
install') and with it only the required packages remain automatically selected.

For ncurses: Select 'Package Classification' from 'Filter' menu and
'Recommended' packages. There is also the possibility to change status of all
packages in the list ('Actions', 'All listed packages', 'Keep All').

Remark to the patch: AFAICS the value for desktop is "textmode" and the solver flag has to be set always according to the selected desktop (in case of reentering the desktop selection).

Ludwig, do you agree to let yast2-packager unchanged? I think the possibility to customize the package selection is a good solution for now.
Comment 4 Gabriele Mohr 2013-01-09 12:10:36 UTC
To deselect all recommended packages is not a good idea because also 'grub' and 'grub2' are deselected then. Shouldn't they be required?
Comment 5 Ludwig Nussel 2013-01-11 09:50:13 UTC
What's the point of having patterns if you argue that you could always tune the installation manually? That misses the point, sorry.

Making sure the correct boot loader package is installed is the duty of yast2-bootloader.
Comment 6 Gabriele Mohr 2013-01-14 07:59:44 UTC
Assigning to the maintainer of yast2-packager.
Comment 7 Ludwig Nussel 2013-03-25 13:38:17 UTC
now that 12.3 is done and we have plenty time to test this change on the road to 13.1 could you please apply the patch now?
Comment 8 Ludwig Nussel 2013-06-20 03:12:08 UTC
Comment 9 Roman Neuhauser 2014-08-06 09:46:13 UTC
for me as a user, the current situation with the minimal_conflicts pattern is really off-putting.  i absolutely don't expect a "minimal" installation hampering future attempts to install further software.  other GNU/Linux distro and other operating system i've used install whatever they consider "minimal" and then let me install more stuff.

"minimal" says "you can't live without this, and you don't need anything else" in English while in Susish, "you can't live without this" is apparently spelled "recommended".  it's absurd.
Comment 10 Martin Vidner 2015-06-25 08:20:03 UTC
This is also related to https://fate.suse.com/318099 'Possibility to install with "no recommends"' which I am working on. I have added a Use Case (UC5) for this bug to that Fate entry.

I haven't known about the minimal_base-conflicts pattern
(search in https://build.opensuse.org/package/view_file/openSUSE:Factory/patterns-openSUSE/patterns-openSUSE.spec?expand=1 )

In the control file it does not have an associated bug: https://github.com/yast/skelcd-control-openSUSE/commit/611726e183a14177a04dc4c446761f06f5a30d6f

I thought the solution would be to disable the Recommended solver flag for the installation based on the desktop chosen, like Ludwig proposed in comment 0. 

Coolo, would the "conflict" pattern be still necessary then?
Comment 11 Ludwig Nussel 2015-06-25 09:10:44 UTC
Unfortunately disabling recommends also disables hardware supplements AFAIK which might be an undesirable side effect on physical hardware. So hardware supplements may handling may need to be decoupled from no-recommends in the solver first.
Then this would eliminate the need for the minimal-conflicts pattern, yes.

An alternative I though of might be to somehow allow a pattern to provide a list of soft-locks. So I can selectively soft-lock certain packages.