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