Bug 948482

Summary: yast2-vm: does not install kernel-xen when 'Xen server' is selected
Product: [openSUSE] openSUSE Distribution Reporter: Charles Arnold <carnold>
Component: libzyppAssignee: E-mail List <zypp-maintainers>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: dimstar, mls
Version: Leap 42.1   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: A solver test case

Description Charles Arnold 2015-10-01 19:25:44 UTC
The yast2-vm module (yast2 virtualization from command line) relies on
patterns to install the correct packages. All the packages seem to get
installed correctly except kernel-xen (even the hypervisor is installed).

Steps to dup:
1) Install an os42.1 host taking the defaults
2) Run 'yast2 virtualization' from the command line or 'Install Hypervisor
and Tools' from a yast 'System'->'Virtualization' menu
3) Select 'Xen server' and 'Xen tools' and 'Accept'
At this point various packages get installed including the hypervisor
but no kernel-xen.  I've tried this on as recent as Build0202.

The old yast2-vm module explicitly specified kernel-xen. This changed to
using patterns in SLE12/opensuse 13.2 and works in those distros.
I haven't tried Tumbleweed lately.
Comment 1 Dominique Leuenberger 2015-10-02 09:15:32 UTC
The same can be observed with:

> sudo zypper in -t pattern xen_server
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 5 NEW packages are going to be installed:
  libspice-controller0 patterns-openSUSE-xen_server virt-viewer xen xen-doc-html

The following NEW pattern is going to be installed:
  xen_server

The following 3 recommended packages were automatically selected:
  virt-viewer xen xen-doc-html

5 new packages to install.
Overall download size: 10.3 MiB. Already cached: 0 B. After the operation, additional 35.8 MiB will be used.
Continue? [y/n/? shows all options] (y): 


The pattern is going to be installed, but kernel-xen is not in the list of packages to add.


The pattern does list kernel-xen:
> zypper info -t pattern xen_server
Loading repository data...
Reading installed packages...


Information for pattern xen_server:
-----------------------------------
Repository: openSUSE-Tumbleweed-Oss
Name: xen_server
Version: 20150828-2.1
Arch: x86_64
Vendor: openSUSE
Installed: No
Visible to User: Yes
Summary: Xen Virtual Machine Host Server
Description: 
  Software to set up a server for configuring, managing, and monitoring virtual machines on a single physical machine.
Contents:

S | Name                         | Type    | Dependency
--+------------------------------+---------+-----------
i | bridge-utils                 | package |           
  | kernel-xen                   | package |           
  | libvirt-daemon-xen           | package |           
i | patterns-openSUSE-base       | package |           
  | patterns-openSUSE-xen_server | package |           
  | virt-manager                 | package |           
  | virt-viewer                  | package |           
  | vm-install                   | package |           
  | xen                          | package |           
  | xen-doc-html                 | package |           
i | xen-libs                     | package |           
  | xen-tools                    | package |           
i | xterm                        | package |           
i | yast2-vm                     | package |           

installing kernel-xen manually does not cause any resolution conflicts:

> sudo zypper in kernel-xen
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  kernel-xen

1 new package to install.
Overall download size: 45.0 MiB. Already cached: 0 B. After the operation, additional 211.9 MiB will be used.


So, this sounds like libzypp/libsolv is not giving a complete solution to the problem at hand (or something pretends that this kernel-xen is not needed for the pattern)
Comment 2 Dominique Leuenberger 2015-10-02 09:18:30 UTC
Can this be a problem that openSUSE-release provides:
  weakremover(kernel-xen) < 3.11

having this already installed sounds like a valid solution to the "Recommends: kernel-xen" requirement from the pattern.
Comment 3 Michael Schröder 2015-10-02 10:03:25 UTC
The weakremover() stuff is only looked at in 'zypper dup' runs. So it must be something else. Please attach a solver testcase...
Comment 4 Michael Schröder 2015-10-02 10:03:50 UTC
The weakremover() stuff is only looked at in 'zypper dup' runs. So it must be something else. Please attach a solver testcase...
Comment 5 Dominique Leuenberger 2015-10-02 10:15:59 UTC
Created attachment 649890 [details]
A solver test case

ran using:

zypper in --debug-solver -t pattern xen_server (on a TW install, but the effects observed are equal)
Comment 6 Michael Schröder 2015-10-02 12:09:24 UTC
Oh my, a libsolv bug. The obsoletes pruning code in the weak deps handling was never updated, so it still used the old "obsoletes work on provides" semantics.

The installed kernel-desktop obsoletes ath3k-firmware <= 1.0, which is provided by kernel-xen.

Fixed in libsolv with commit e810d2f44efab6f2fd598f0c2643a5a3741edae2
Comment 7 Dominique Leuenberger 2015-10-02 12:12:50 UTC
(In reply to Michael Schröder from comment #6)
> Oh my, a libsolv bug. The obsoletes pruning code in the weak deps handling
> was never updated, so it still used the old "obsoletes work on provides"
> semantics.
> 
> The installed kernel-desktop obsoletes ath3k-firmware <= 1.0, which is
> provided by kernel-xen.
> 
> Fixed in libsolv with commit e810d2f44efab6f2fd598f0c2643a5a3741edae2

GREAT ! Thanks Michael.

AS Leap 42.1 uses libsolv from SLE12SP1: can you please ensure this fix finds its way there? Then Leap will inherit it.
Comment 8 Charles Arnold 2015-10-08 16:10:10 UTC
Verified fixed in Build0213.
Comment 9 Swamp Workflow Management 2015-11-09 17:14:24 UTC
SUSE-RU-2015:1941-1: An update that has 16 recommended fixes can now be installed.

Category: recommended (moderate)
Bug References: 900769,941453,941463,941539,941563,943563,945169,946129,946750,946752,948482,948608,949957,951339,951402,951782
CVE References: 
Sources used:
SUSE Linux Enterprise Software Development Kit 12 (src):    libsolv-0.6.14-2.13.1, libzypp-14.42.3-2.31.1
SUSE Linux Enterprise Server 12 (src):    libsolv-0.6.14-2.13.1, libzypp-14.42.3-2.31.1, yast2-pkg-bindings-3.1.20.2-8.1, zypper-1.11.42-2.25.2
SUSE Linux Enterprise Desktop 12 (src):    libsolv-0.6.14-2.13.1, libzypp-14.42.3-2.31.1, yast2-pkg-bindings-3.1.20.2-8.1, zypper-1.11.42-2.25.2
Comment 10 Swamp Workflow Management 2015-12-08 13:11:57 UTC
openSUSE-RU-2015:2226-1: An update that has 11 recommended fixes can now be installed.

Category: recommended (low)
Bug References: 900769,943563,945169,946129,946750,946752,948482,949957,951339,951402,951782
CVE References: 
Sources used:
openSUSE 13.2 (src):    libsolv-0.6.14-16.1, libzypp-14.42.3-32.1, zypper-1.11.42-28.1