Bug 1440787

Summary: change grub2 comps records (based on architecture)
Product: Red Hat Enterprise Linux 7 Reporter: Lubos Kocman <lkocman>
Component: relengAssignee: Lubos Kocman <lkocman>
Status: CLOSED ERRATA QA Contact: Release Test Team <release-test-team-automation>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: 7.4CC: dtodorov, hkrzesin, jbastian, jstodola, lmiksik, mbanas, pbunyan, pjones, yizhan
Target Milestone: rc   
Target Release: ---   
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: 2017-08-01 17:39:27 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:
Bug Depends On:    
Bug Blocks: 1420654, 1440786    

Description Lubos Kocman 2017-04-10 13:19:57 UTC
RCM needs to update rhel-7.4/pegas comps records for grub2 so they'll reflect current rpm-set of grub2 srpm.

This issue is triggered by Bug 1440786

Lubos

Comment 2 Lubos Kocman 2017-04-10 13:20:57 UTC
*** Bug 1440723 has been marked as a duplicate of this bug. ***

Comment 3 Lubos Kocman 2017-04-10 13:23:11 UTC
 220       <packagereq arch="ppc64,ppc64le,x86_64">grub2</packagereq>
 221       <packagereq arch="aarch64,x86_64">grub2-efi</packagereq>

This is current situation, which we need to fix per arch

Comment 4 Lubos Kocman 2017-04-10 13:25:01 UTC
Peter can you help us with proper placement?

Thanks

Comment 5 Lubos Kocman 2017-04-10 14:14:40 UTC
This currently causes grub2* rpms to appear in optional

Lubos

Comment 6 Lubos Kocman 2017-04-10 14:58:25 UTC
This is my proposal

* 32bit rpms (multilib) still available but not installed by default (rather than having them in optional). 

* grub2-ppc64 default on ppc64 but optional on ppc64le 
* efi-64 and pc by default on intel

Seems like grub2-tools is pulled in via dependencies.

I'm making the commit now so we have installable nightly tree. Feel free to send other proposals.

lkocman@rcm-compose-nightly-01:~/comps$ git diff comps-rhel-7.4.xml.in
diff --git a/comps-rhel-7.4.xml.in b/comps-rhel-7.4.xml.in
index 792bf16..ad1b2a7 100644
--- a/comps-rhel-7.4.xml.in
+++ b/comps-rhel-7.4.xml.in
@@ -144,8 +144,15 @@
       <packagereq>fcoe-utils</packagereq>
       <packagereq>firewalld</packagereq>
       <packagereq arch="x86_64,s390x,ppc64le">gfs2-utils</packagereq>
-      <packagereq arch="ppc64,ppc64le,x86_64">grub2</packagereq>
-      <packagereq arch="aarch64,x86_64">grub2-efi</packagereq>
+      <packagereq type="optional" arch="ppc64">grub2-ppc</packagereq>
+      <packagereq type="optional" arch="ppc64le">grub2-ppc64</packagereq>
+      <packagereq type="default" arch="ppc64">grub2-ppc64</packagereq>
+      <packagereq type="default" arch="ppc64le">grub2-ppc64le</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
+      <packagereq type="default" arch="x86_64">grub2-efi-x64</packagereq>
+      <packagereq type="default" arch="x86_64">grub2-pc</packagereq>
+      <packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
+      <packagereq type="optional" arch="ppc64le">grub2-ppc64</packagereq>
       <packagereq>iscsi-initiator-utils</packagereq>
       <packagereq>lvm2</packagereq>
       <packagereq>mdadm</packagereq>

Comment 7 Peter Jones 2017-04-10 15:15:23 UTC
I think actually that should be:

--- a/comps-rhel-7.4.xml.in
+++ b/comps-rhel-7.4.xml.in
@@ -144,8 +144,12 @@
       <packagereq>fcoe-utils</packagereq>
       <packagereq>firewalld</packagereq>
       <packagereq arch="x86_64,s390x,ppc64le">gfs2-utils</packagereq>
-      <packagereq arch="ppc64,ppc64le,x86_64">grub2</packagereq>
-      <packagereq arch="aarch64,x86_64">grub2-efi</packagereq>
+      <packagereq type="default" arch="ppc64">grub2-ppc64</packagereq>
+      <packagereq type="default" arch="ppc64le">grub2-ppc64le</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-efi-x64</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-pc</packagereq>
+      <packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
       <packagereq>iscsi-initiator-utils</packagereq>
       <packagereq>lvm2</packagereq>
       <packagereq>mdadm</packagereq>

I'm not completely sure about the ppc bits, but it isn't obvious to me that grub2-ppc should ever be installed on grub2-ppc64le, etc.

On x86_64 grub2-efi-x64 and grub2-pc should actually both be optional, I think; they should not ever both be installed on the same machine.  Anaconda will pull the correct one in automatically based on the install type, so there doesn't strictly need to be a default at all.

Comment 8 PaulB 2017-04-10 20:22:35 UTC
All,

pbunyan adds Pegas kernel maintainer just so he is aware...

Comment 9 Lubos Kocman 2017-04-11 07:49:11 UTC
Doing slight change due fact that we've had *modules* spreaded across pungi config rather than comps. So adding modules as optional. And I agree about ppc being in optional as well.

<packagereq type="default" arch="ppc64">grub2-ppc64</packagereq>
<packagereq type="optional" arch="ppc64">grub2-ppc64-modules</packagereq>
<packagereq type="default" arch="ppc64le">grub2-ppc64le</packagereq>
<packagereq type="optional" arch="ppc64le">grub2-ppc64le-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-ia32-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-x64</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-x64-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-pc</packagereq>
<packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
<packagereq type="optional" arch="aarch64">grub2-efi-aa64-modules</packagereq>

Comment 10 Jeff Bastian 2017-04-11 12:30:09 UTC
aarch64 is still broken with Pegas-7.4-20170411.n.0 with the same traceback from duplicate bug 1440723 comment 0
  https://beaker.engineering.redhat.com/recipes/3722566#installation

ppc64le is still broken with Pegas-7.4-20170411.n.0 with the same traceback from duplicate bug 1440723 comment 11
  https://beaker.engineering.redhat.com/recipes/3722568#installation

x86_64 worked ok
  https://beaker.engineering.redhat.com/recipes/3722567#installation

s390x finished the kickstart and rebooted, but it failed on first boot and dropped into the dracut emergency shell
  https://beaker.engineering.redhat.com/recipes/3722569#installation

Comment 11 Martin Banas 2017-04-11 13:14:30 UTC
s390x issue is caused by systemd, bug 1274401

Comment 12 Peter Jones 2017-04-11 19:51:40 UTC
ppc64le and aarch64 tracebacks are caused by a bug in anaconda, to be addressed with https://github.com/rhinstaller/anaconda/pull/1023 .  I'm told there will be builds on 12-Apr-2017.  In the mean time, I've done this scratch build that you should be able to test with: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=12994741

Combined with this grub2 build to fix the package naming issue WRT different arch targets, that should get you a long way I think: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=12994084

Comment 13 Peter Jones 2017-04-11 19:54:08 UTC
And with those, I think the comps change mentioned above becomes:

--- a/comps-rhel-7.4.xml.in
+++ b/comps-rhel-7.4.xml.in
@@ -144,8 +144,10 @@
       <packagereq>fcoe-utils</packagereq>
       <packagereq>firewalld</packagereq>
       <packagereq arch="x86_64,s390x,ppc64le">gfs2-utils</packagereq>
       <packagereq arch="ppc64,ppc64le,x86_64">grub2</packagereq>
-      <packagereq arch="aarch64,x86_64">grub2-efi</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
+      <packagereq type="optional" arch="x86_64">grub2-efi-x64</packagereq>
+      <packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
       <packagereq>iscsi-initiator-utils</packagereq>
       <packagereq>lvm2</packagereq>
       <packagereq>mdadm</packagereq>

Comment 14 Peter Jones 2017-04-11 20:38:13 UTC
Aaand those builds will really be:

grub2-2.02-0.56.el7 https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=12994939
anaconda-21.48.22.108-1.el7.pj0 https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=12995225

Comment 15 Peter Jones 2017-04-11 20:39:26 UTC
(In reply to Peter Jones from comment #13)
> And with those, I think the comps change mentioned above becomes:
> 
> --- a/comps-rhel-7.4.xml.in
> +++ b/comps-rhel-7.4.xml.in
> @@ -144,8 +144,10 @@
>        <packagereq>fcoe-utils</packagereq>
>        <packagereq>firewalld</packagereq>
>        <packagereq arch="x86_64,s390x,ppc64le">gfs2-utils</packagereq>
>        <packagereq arch="ppc64,ppc64le,x86_64">grub2</packagereq>
> -      <packagereq arch="aarch64,x86_64">grub2-efi</packagereq>
> +      <packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
> +      <packagereq type="optional" arch="x86_64">grub2-efi-x64</packagereq>
> +      <packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
>        <packagereq>iscsi-initiator-utils</packagereq>
>        <packagereq>lvm2</packagereq>
>        <packagereq>mdadm</packagereq>

Actually I'm still not sure about this, because I don't know what repo it comes from.  Is this the part that's saying if it's landing in Server-optional or Server?  If so, these all need to be "default".

Comment 19 Lubos Kocman 2017-04-20 09:31:48 UTC
Added also legacy package as default (hopefully it's meant to be installed)
<packagereq arch="x86_64,s390x,ppc64,ppc64le" type="default">grub2</packagereq>
<packagereq type="default" arch="ppc64">grub2-ppc64</packagereq>
<packagereq type="optional" arch="ppc64">grub2-ppc64-modules</packagereq>
<packagereq type="default" arch="ppc64le">grub2-ppc64le</packagereq>
<packagereq type="optional" arch="ppc64le">grub2-ppc64le-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-ia32</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-ia32-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-x64</packagereq>
<packagereq type="optional" arch="x86_64">grub2-efi-x64-modules</packagereq>
<packagereq type="optional" arch="x86_64">grub2-pc</packagereq>
<packagereq type="default" arch="aarch64">grub2-efi-aa64</packagereq>
<packagereq type="optional" arch="aarch64">grub2-efi-aa64-modules</packagereq>

The way I'm looking on optional vs default is should package be installed by default. And then won't it be already pulled in by other package (we might skip comps record completely)?
 
Side effect is that group will appear as installed even when optional packages won't be.

Comment 22 errata-xmlrpc 2017-08-01 17:39:27 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-2017:1850