Bug 1330521

Summary: %pre (and anaconda) fails when installing on a system without shadow-utils
Product: Red Hat Enterprise Virtualization Manager Reporter: Fabian Deutsch <fdeutsch>
Component: ovirt-vmconsoleAssignee: Francesco Romani <fromani>
Status: CLOSED WORKSFORME QA Contact: Nikolai Sednev <nsednev>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 3.6.5CC: bazulay, bugs, cshao, danken, fromani, gklein, nsednev, oourfali, pstehlik, Rhev-m-bugs, sbonazzo, weiwang, yaniwang, ycui, ylavi
Target Milestone: ovirt-3.6.6   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1329657 Environment:
Last Closed: 2016-04-26 13:08:28 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1329657    
Bug Blocks: 1140646    

Description Fabian Deutsch 2016-04-26 12:04:25 UTC
+++ This bug was initially created as a clone of Bug #1329657 +++

Description of problem:
The installation of the ovirt-vmconsole rpm fails if shadow-utils are not installed

Version-Release number of selected component (if applicable):
1.0.0-1

How reproducible:
always

Steps to Reproduce:
1. Install a clean system without shadow-utils
2. Install ovirt-vmconsole
3.

Actual results:
Fails

Expected results:
Should not fail

Additional info:
This happens when we build Node Next

--- Additional comment from Francesco Romani on 2016-04-25 09:38:31 CEST ---

The first fix is to add explicit dependency to shadow-utils. I will take this chance to review the package to see if there are more hidden dependencies.

That said, I'm not sure it is completely ok to create the user at %pre stage.
Unfortunately, this has to be kept this way for the time being, since ovirt-vmconsole owns the user; For the longer term, it is probably worth to ask to add this user in the basesystem, so we can get rid of the %pre scriptlet entirely, but this won't happen anytime soon.

--- Additional comment from Fabian Deutsch on 2016-04-25 12:40:33 CEST ---

For the record: This was only catched in downstream, because of a small difference in the build process.

In upstream we use %packages for the platform, and %post for ovirt (because of ovirt-release). These are basically two independent (rpm) transactions, shadow-utils is getting installed in the first %packages transaction.
When ovirt-vmconsole is getting installed in %post (indirectly through vdsm and/or ovirt-hosted-engine-setup), then shadow-utils was already installed as a dependency durign the %packages tx.

In downstream however, one transaction is used. RHEL + RHEV are both getting installed during %packages. And there it happens that - because ovirt-vmconsole has so few deps - it is getting installed quite early during the transaction, and at that point in time shadow-utils is not yet installed, which then is causing this problem.

--- Additional comment from Sandro Bonazzola on 2016-04-26 09:23:50 CEST ---

Moving to virt, integration may assist if needed.

--- Additional comment from Francesco Romani on 2016-04-26 09:46:02 CEST ---

This is a purely-packaging change that cannot be verified using standard systems like RHEL, or CentOS. On those platforms should not be any user-visible difference.
On custom platforms (e.g. node) we could verify the package is not installable without shadow-utils, and that it pulls shadow-utils in.

--- Additional comment from Fabian Deutsch on 2016-04-26 10:20:29 CEST ---

It can actually be verified on regular Fedora/CentOS/RHEL as well:

1. Create a kickstart file for auto installation
2. Add vm-console only to the %packages section
3. Perform the installation

This should fail without the patch.

But we can also verify it on Node.

--- Additional comment from Dan Kenigsberg on 2016-04-26 12:17:26 CEST ---

I suspect no one would care if I approve this from devel PoV.