Bug 1330521 - %pre (and anaconda) fails when installing on a system without shadow-utils
Summary: %pre (and anaconda) fails when installing on a system without shadow-utils
Keywords:
Status: CLOSED WORKSFORME
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-vmconsole
Version: 3.6.5
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ovirt-3.6.6
: ---
Assignee: Francesco Romani
QA Contact: Nikolai Sednev
URL:
Whiteboard:
Depends On: 1329657
Blocks: ovirt-node-ng
TreeView+ depends on / blocked
 
Reported: 2016-04-26 12:04 UTC by Fabian Deutsch
Modified: 2016-04-26 13:08 UTC (History)
15 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 1329657
Environment:
Last Closed: 2016-04-26 13:08:28 UTC
oVirt Team: Virt
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

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.


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