Bug 164939

Summary: cman-kernel wrongly lists kernel-hugemem as build requirement
Product: [Retired] Red Hat Cluster Suite Reporter: Charlie Brady <charlieb-redhat-bugzilla>
Component: cmanAssignee: Chris Feist <cfeist>
Status: CLOSED ERRATA QA Contact: Cluster QE <mspqa-list>
Severity: medium Docs Contact:
Priority: medium    
Version: 4CC: cluster-maint
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-01-04 19:22:47 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Charlie Brady 2005-08-02 21:51:49 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5) Gecko/20041123 Firefox/1.0

Description of problem:
...
bash-3.00$ rpmbuild --rebuild --target=i686 cman-kernel-2.6.9-36.0.src.rpm
Installing cman-kernel-2.6.9-36.0.src.rpm
warning: user buildcentos does not exist - using root
warning: group buildcentos does not exist - using root
warning: user buildcentos does not exist - using root
warning: group buildcentos does not exist - using root
Building target platforms: i686
Building for target i686
error: Failed build dependencies:
        kernel-hugemem = 2.6.9-11.EL is needed by cman-kernel-2.6.9-36.0.i686
bash-3.00$
...

However, I succeeded in building the package without kernel-hugemem installed:

bash-3.00$ rpmbuild --rebuild --target=i686 --nodeps cman-kernel-2.6.9-36.0.src.rpm
Installing cman-kernel-2.6.9-36.0.src.rpm
warning: user buildcentos does not exist - using root
warning: group buildcentos does not exist - using root
warning: user buildcentos does not exist - using root
warning: group buildcentos does not exist - using root
Building target platforms: i686
Building for target i686
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.97336
...
Requires(post): /bin/sh
Requires: /lib/modules/2.6.9-11.ELhugemem kernel-hugemem = 2.6.9-11.EL
Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/cman-kernel-2.6.9-36.0-buildroot
Wrote: /home/speech/bradyc/rpms/RPMS/i686/cman-kernel-2.6.9-36.0.i686.rpm
Wrote: /home/speech/bradyc/rpms/RPMS/i686/cman-kernheaders-2.6.9-36.0.i686.rpm
Wrote: /home/speech/bradyc/rpms/RPMS/i686/cman-kernel-smp-2.6.9-36.0.i686.rpm
Wrote: /home/speech/bradyc/rpms/RPMS/i686/cman-kernel-hugemem-2.6.9-36.0.i686.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.16117
+ umask 022
+ cd /home/speech/bradyc/rpms/BUILD
+ cd cman-kernel-2.6.9-36
+ rm -rf /var/tmp/cman-kernel-2.6.9-36.0-buildroot
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.16117
+ umask 022
+ cd /home/speech/bradyc/rpms/BUILD
+ rm -rf cman-kernel-2.6.9-36
+ exit 0
bash-3.00$

What's really required is kernel-hugemem-devel, and I *do* have that installed.
But even that requirement isn't quite right - it should depend on the value of buildhugemem, but doesn't.

In fact, I think these three BuildRequires are all wrong - you should be able to be running any kernel at all (even one not installed via RPM), as long as you have the correct kernel-*devel RPMS installed.

...
BuildRequires: kernel = %{kernel_version}
BuildRequires: kernel-smp = %{kernel_version}
BuildRequires: kernel-hugemem = %{kernel_version}
...


Version-Release number of selected component (if applicable):
cman-kernel-2.6.9-36.0

How reproducible:
Always

Steps to Reproduce:
See above, just try to rebuild the package without any of the three kernel RPMs installed.

Additional info:

Comment 1 Christine Caulfield 2005-08-08 08:11:25 UTC
Reassign to Chris as he's IC the build system.

Comment 2 Chris Feist 2005-08-16 15:53:24 UTC
You are correct, requiring that the kernel package be installed for the build is
not necessary.  Future releases will not contain that requirement.

Unfortunately the way our build system works we cannot have BuildRequires inside
of if statements (the if statements get ignored).