About rebuild src.rpm

Paul Howarth paul at city-fan.org
Mon May 8 10:34:35 UTC 2006


On Mon, 2006-05-08 at 13:18 +0800, Stephen Liu wrote:
> Hi folks,
> 
> FC5_64
> ======
> 
> # rpm -qa "k3b" "dvd+rw-tools"
> dvd+rw-tools-6.1-0.FC5.2
> k3b-0.12.15-1
> 
> Problem on rebuild src.rpm
> 
> Step performed as follow;
> 
> $ su -
> password
> # rpmbuild --rebuild dvd+rw-tools-6.1-1.src.rpm
> Installing dvd+rw-tools-6.1-1.src.rpm
> warning: user builder does not exist - using root
> warning: user builder does not exist - using root
> warning: user builder does not exist - using root
> warning: user builder does not exist - using root
> warning: user builder does not exist - using root
> Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.62685
> + umask 022
> + cd /usr/src/redhat/BUILD
> + LANG=C
> + export LANG
> + unset DISPLAY
> + cd /usr/src/redhat/BUILD
> + rm -rf dvd+rw-tools-6.1
> + /usr/bin/gzip -dc /usr/src/redhat/SOURCES/dvd+rw-tools-6.1.tar.gz
> + tar -xf -
> + STATUS=0
> + '[' 0 -ne 0 ']'
> + cd dvd+rw-tools-6.1
> ++ /usr/bin/id -u
> + '[' 0 = 0 ']'
> + /bin/chown -Rhf root .
> ++ /usr/bin/id -u
> + '[' 0 = 0 ']'
> + /bin/chgrp -Rhf root .
> + /bin/chmod -Rf a+rX,u+w,g-w,o-w .
> + echo 'Patch #0 (dvd+rw-tools-makefile.patch):'
> Patch #0 (dvd+rw-tools-makefile.patch):
> + patch -p1 -s
> + echo 'Patch #1 (dvd+rw-tools-bacula.patch):'
> Patch #1 (dvd+rw-tools-bacula.patch):
> + patch -p1 -s
> + echo 'Patch #2 (dvd+rw-tools-printf.patch):'
> Patch #2 (dvd+rw-tools-printf.patch):
> + patch -p1 -s
> + exit 0
> Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.62685
> + umask 022
> + cd /usr/src/redhat/BUILD
> + cd dvd+rw-tools-6.1
> + LANG=C
> + export LANG
> + unset DISPLAY
> + /usr/bin/make CC=gcc CXX=g++ 'CFLAGS=%{rpmcflags} -Wall'
> 'CXXFLAGS=%{rpmcflags} -fno-exceptions -Wall'
> make[1]: Entering directory `/usr/src/redhat/BUILD/dvd+rw-tools-6.1'
> gcc %{rpmcflags} -Wall   -c -o growisofs.o growisofs.c
> gcc: %{rpmcflags}: No such file or directory
> In file included from growisofs.c:410:
> mp.h: In function '__thread_wait':
> mp.h:53: warning: cast from pointer to integer of different size
> growisofs.c: In function 'main':
> growisofs.c:2567: warning: suggest parentheses around && within ||
> growisofs.c: At top level:
> mp.h:51: warning: '__thread_wait' defined but not used
> mp.h:64: warning: '__semaphore_close' defined but not used
> make[1]: *** [growisofs.o] Error 1
> make[1]: Leaving directory `/usr/src/redhat/BUILD/dvd+rw-tools-6.1'
> make: *** [all] Error 2
> error: Bad exit status from /var/tmp/rpm-tmp.62685 (%build)
> 
> RPM build errors:
>     user builder does not exist - using root
>     user builder does not exist - using root
>     user builder does not exist - using root
>     user builder does not exist - using root
>     user builder does not exist - using root
>     Bad exit status from /var/tmp/rpm-tmp.62685 (%build)
> * * * End * * *
> 
> 
> $ cat /var/tmp/rpm-tmp.62685
> #!/bin/sh
> 
>   RPM_SOURCE_DIR="/usr/src/redhat/SOURCES"
>   RPM_BUILD_DIR="/usr/src/redhat/BUILD"
>   RPM_OPT_FLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2
> -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64
> -mtune=generic"
>   RPM_ARCH="x86_64"
>   RPM_OS="linux"
>   export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
>   RPM_DOC_DIR="/usr/share/doc"
>   export RPM_DOC_DIR
>   RPM_PACKAGE_NAME="dvd+rw-tools"
>   RPM_PACKAGE_VERSION="6.1"
>   RPM_PACKAGE_RELEASE="1"
>   export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
>   RPM_BUILD_ROOT="/%{tmpdir}/dvd+rw-tools-6.1-root-root"
>   export RPM_BUILD_ROOT
> 
> 
>   set -x
>   umask 022
>   cd /usr/src/redhat/BUILD
> cd dvd+rw-tools-6.1
> LANG=C
> export LANG
> unset DISPLAY
> 
> /usr/bin/make \
>         CC="gcc" \
>         CXX="g++" \
>         CFLAGS="%{rpmcflags} -Wall" \
>         CXXFLAGS="%{rpmcflags} -fno-exceptions -Wall"
> 
> 
> Was the command run being correct?  OR FC5_64 uses different command?

The PLD distribution, for which this package was written, appears to use
different macro names than Red Hat/Fedora, specifically %{rpmcflags}
instead of %{optflags}.

Another thing you're doing is building packages as root, which is not a
good idea. See this article for building packages as a regular user:
http://www.city-fan.org/tips/CreateRPMBuildEnvironment

After doing what it says there, try adding the following to your
~/.rpmmacros file:

%rpmcflags	%{optflags}

You might then be able to get further with the package build.

Paul.




More information about the fedora-list mailing list