Bug 164314 - gnbd-kernel build dirties outside $RPM_BUILD_DIR
gnbd-kernel build dirties outside $RPM_BUILD_DIR
Status: CLOSED ERRATA
Product: Red Hat Cluster Suite
Classification: Red Hat
Component: gnbd (Show other bugs)
4
All Linux
medium Severity medium
: ---
: ---
Assigned To: Chris Feist
Cluster QE
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2005-07-26 16:39 EDT by Charlie Brady
Modified: 2010-01-04 14:15 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2010-01-04 14:15:49 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Charlie Brady 2005-07-26 16:39:51 EDT
gnbd-kernel is not well behaved during building, and I suspect will not be
reliable, since it strays outside the builddir during building, and therefore
isn't working with a known clean state.

The problem lines are these in %build:

cp -r `pwd` ../smp
cp -r `pwd` ../xenU
cp -r `pwd` ../xen0

../smp, ../xenU and ../xen0 may or may not already exist, and may be files,
symlinks or existing directories. If directories, they may not be empty.

Here's a fix (which also moves the tree copying into %prep, and skips two tree
copies if the xen variant is not being built):

diff -u -r1.1 gnbd-kernel.spec
--- gnbd-kernel.spec    2005/07/26 19:20:45     1.1
+++ gnbd-kernel.spec    2005/07/26 20:36:21
@@ -95,6 +95,16 @@
 ################################################################################
 %prep
 %setup -q -n %{name}-%{version}-%{subversion}
+mkdir up
+mv configure CVS make Makefile patches scripts src up
+mkdir smp
+cp -r up/. smp
+%if %{buildxen}
+mkdir xenU
+cp -r up/. xenU
+mkdir xen0
+cp -r up/. xen0
+%endif

 ################################################################################
 ##  THE BUILD SECTION
@@ -102,13 +112,14 @@
 %build
 BUILD_TOPDIR=`pwd`

-cp -r `pwd` ../smp
-cp -r `pwd` ../xenU
-cp -r `pwd` ../xen0
-
 Build_gnbd(){
        cpu_type=$1
        flavor=$2
+       var=
+       if [ -n "$flavor" ]
+       then
+           var="$flavor-"
+       fi
        kernel_src=/lib/modules/%{kernel_version}$flavor/build
        # Kernel tree setup
        if [ -d $kernel_src/. ]; then
@@ -129,19 +140,20 @@
 }

 %if %{buildup}
+cd $BUILD_TOPDIR/up
 Build_gnbd %{_target_cpu}
 %endif

 %if %{buildsmp}
-cd ../smp
+cd $BUILD_TOPDIR/smp
 Build_gnbd %{_target_cpu} smp
 %endif

 %if %{buildxen}
-cd ../xenU
+cd $BUILD_TOPDIR/xenU
 Build_gnbd %{_target_cpu} xenU

-cd ../xen0
+cd $BUILD_TOPDIR/xenO
 Build_gnbd %{_target_cpu} xen0
 %endif

@@ -150,20 +162,22 @@
 ################################################################################
 %install
 rm -rf $RPM_BUILD_ROOT
+BUILD_TOPDIR=`pwd`

 %if %{buildup}
+cd $BUILD_TOPDIR/up
 make install DESTDIR=$RPM_BUILD_ROOT
 %endif

 %if %{buildsmp}
-cd ../smp
+cd $BUILD_TOPDIR/smp
 make install DESTDIR=$RPM_BUILD_ROOT
 %endif

 %if %{buildxen}
-cd ../xenU
+cd $BUILD_TOPDIR/xenU
 make install DESTDIR=$RPM_BUILD_ROOT ARCH=xen
-cd ../xen0
+cd $BUILD_TOPDIR/xenO
 make install DESTDIR=$RPM_BUILD_ROOT ARCH=xen
 %endif
Comment 1 Charlie Brady 2005-07-26 17:51:52 EDT
The other *-kernel packages ({GFS,cman,dlm}) have the same problem. They each
create and then dirty $RPM_BUILD_DIR/../smp and then leave the dirty directory
around. They each fail to build if there is an existing $RPM_BUILD_DIR/../smp
directory containing sources and build products of one of the other rpms. They
also fail if there happens to be a $RPM_BUILD_DIR/../smp file.

They can each be fixed as above.
Comment 2 Ben Marzinski 2005-07-26 18:03:16 EDT
tag. You're it.
Comment 3 Charlie Brady 2005-07-27 11:20:50 EDT
"mkdir $RPM_BUILD_DIR/smp" before doing "rpmbuild --rebuild --target=i686
gnbd-kernel-2.6.9.9-20050705200822.35.src.rpm" is enough to make the build fail.

Would you like separate bugzillas for each of GFS-kernel, dlm-kernel and
cman-kernel?
Comment 4 Chris Feist 2005-07-27 11:24:41 EDT
No need to open extra bugs, I'll fix all of the packages at the same time.
Comment 5 Chris Feist 2005-08-02 12:23:44 EDT
This has been fixed in all of the latest -kernel packages and should be included
in RHEL4-U2.

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