Bug 1570833

Summary: cockpit-dashboard must require selinux-policy-targeted in post section
Product: Red Hat Enterprise Linux 7 Reporter: Sandro Bonazzola <sbonazzo>
Component: cockpitAssignee: Martin Pitt <mpitt>
Status: CLOSED ERRATA QA Contact: Leos Pol <lpol>
Severity: low Docs Contact:
Priority: medium    
Version: 7.5CC: tbowling, toneata
Target Milestone: rcKeywords: Reopened
Target Release: 7.5   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-26 18:38:52 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:

Description Sandro Bonazzola 2018-04-23 13:37:45 UTC
cockpit-dashboard uses semanage in %post section but doesn't require selinux-policy-targeted at %post section

This allow to install cockpit-dashboard before selinux-policy-targeted while building the RHV-M appliance with anaconda generating the following traceback extracted from https://bugzilla.redhat.com/show_bug.cgi?id=1563737

07:01:38,735 INFO packaging: cockpit-dashboard-160-3.el7.x86_64 (840/996)
07:01:38,735 INFO packaging: Applying workaround for broken SELinux policy: https://bugzilla.redhat.com/show_bug.cgi?id=1381331
07:01:38,736 INFO packaging: Traceback (most recent call last):
07:01:38,736 INFO packaging:   File "/sbin/semanage", line 32, in <module>
07:01:38,737 INFO packaging:     import seobject
07:01:38,737 INFO packaging:   File "/usr/lib64/python2.7/site-packages/seobject/__init__.py", line 36, in <module>
07:01:38,737 INFO packaging:     import sepolicy
07:01:38,738 INFO packaging:   File "/usr/lib64/python2.7/site-packages/sepolicy/__init__.py", line 921, in <module>
07:01:38,738 INFO packaging:     raise e
07:01:38,739 INFO packaging: ValueError: No SELinux Policy installed
07:01:38,739 INFO packaging: No such file or directory

Comment 1 Martin Pitt 2018-04-24 06:52:13 UTC
Indeed this workaround is now obsolete for 7.5, so the whole %post can be dropped for cockpit-dashboard. It's too late for 7.5.1, but I'll do that for 7.5.2 (and of course 7.6).

Aside from that traceback (which isn't fatal) this should not have broken anything at runtime, right?

Comment 2 Sandro Bonazzola 2018-04-24 12:11:56 UTC
(In reply to Martin Pitt from comment #1)
> Indeed this workaround is now obsolete for 7.5, so the whole %post can be
> dropped for cockpit-dashboard. It's too late for 7.5.1, but I'll do that for
> 7.5.2 (and of course 7.6).
> 
> Aside from that traceback (which isn't fatal) this should not have broken
> anything at runtime, right?

I'm not aware of any other issue other than the traceback.

Comment 3 Martin Pitt 2018-05-29 12:00:49 UTC
The upstream fix (https://github.com/cockpit-project/cockpit/commit/f2134507aa0) landed in version 158. RHEL Extras 7.5.1 has cockpit-dashboard 160, so this is fixed there.

Comment 4 Martin Pitt 2018-05-30 11:43:06 UTC
Sorry, this wasn't in the downstream spec file yet. Reopening, and adding to the current extras rebase for 7.5.2 (#1582426)

Comment 6 Leos Pol 2018-06-17 08:31:59 UTC
$ rpm -q cockpit-dashboard
cockpit-dashboard-165-3.el7.x86_64

$ rpm -q --scripts cockpit-dashboard
postinstall scriptlet (using /bin/sh):
# HACK: Until policy changes make it downstream
echo "Applying workaround for broken SELinux policy: https://bugzilla.redhat.com/show_bug.cgi?id=1381331" >&2
if type semanage >/dev/null 2>&1; then
    semanage fcontext -a /usr/libexec/cockpit-ssh -t cockpit_ws_exec_t || true
    restorecon /usr/libexec/cockpit-ssh || true
else
    chcon -t cockpit_ws_exec_t /usr/libexec/cockpit-ssh || true
fi

# storaged on RHEL 7.4 and Fedora < 27, udisks on newer ones
# Recommends: not supported in RHEL < 8

$ rpm -q cockpit-dashboard
cockpit-dashboard-169-1.el7.x86_64
$ rpm -q --scripts cockpit-dashboard
$

Comment 8 errata-xmlrpc 2018-06-26 18:38:52 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:2026